Feed

  1. Weekly Update 513: Clauding The Home Network


    | troyhunt.com
  2. Opaque, Interoperable Passkey Records (and a Go API)


    | words.filippo.io
  3. Looking for work


    | tonsky.me
  4. Weekly Update 512: IoT Lockout Fail


    | troyhunt.com
  5. Logo: Squawkbox


    | tonsky.me
  6. Weekly Update 511: Live from my Riad in Marrakech


    | troyhunt.com
  7. You’ll miss the soul when it’s gone


    | bell.bz
  8. Swimming Pools, Pee, and Trying to Delete Your Data From the Internet


    | troyhunt.com
  9. I’m playing the Zelda games in timeline order


    | bell.bz
  10. Weekly Update 510: Live From Mallorca with Scott Helme


    | troyhunt.com
  11. We can just do things


    | bell.bz
  12. Weekly Update 509


    | troyhunt.com
  13. Vulnerability Reports Are Not Special Anymore


    | words.filippo.io
  14. The logical destination of LLMs


    | bell.bz
  15. Weekly Update 508


    | troyhunt.com
  16. Every Frame Perfect


    | tonsky.me
  17. Weekly Update 507


    | troyhunt.com
  18. I did the Standard.site thing


    | bell.bz
  19. Welcoming the Philippine Government to Have I Been Pwned


    | troyhunt.com
  20. 1,000 Data Breaches Later, the Disclosure Lag is Worse Than Ever


    | troyhunt.com
  21. Weekly Update 506


    | troyhunt.com
  22. Welcoming the Bhutanese Government to Have I Been Pwned


    | troyhunt.com
  23. Weekly Update 505


    | troyhunt.com
  24. Weekly Update 504


    | troyhunt.com
  25. Welcoming the Bahamian Government to Have I Been Pwned


    | troyhunt.com
  26. Quantum Computers Are Not a Threat to 128-bit Symmetric Keys


    | words.filippo.io
  27. A Cryptography Engineer’s Perspective on Quantum Computing Timelines


    | words.filippo.io
  28. v1.5.0


    | github.com
  29. v1.4.1


    | github.com
  30. v1.4.0


    | github.com
  31. Claude is an Electron App because we’ve lost native


    | tonsky.me
  32. Turn Dependabot Off


    | words.filippo.io
  33. Inspecting the Source of Go Modules


    | words.filippo.io
  34. Podcast: На Маке нет никаких шкафов @ Думаем дальше


    | tonsky.me
  35. go.sum Is Not a Lockfile


    | words.filippo.io
  36. It’s hard to justify Tahoe icons


    | tonsky.me
  37. HTML Input Validation is (maybe) Good


    | htmhell.dev
  38. Replacing JS with just HTML


    | htmhell.dev
  39. Class names for content not design


    | htmhell.dev
  40. Abbreviations done right: The <abbr> element and why not use it


    | htmhell.dev
  41. The three semantics of HTML


    | htmhell.dev
  42. For the Love of <details>


    | htmhell.dev
  43. The HTML Elements Time Forgot


    | htmhell.dev
  44. Styling by Language: Using the lang Attribute for Multilingual Design


    | htmhell.dev
  45. The many lives of the page title


    | htmhell.dev
  46. Building a Transparent Keyserver


    | words.filippo.io
  47. Semantics beyond the tag name


    | htmhell.dev
  48. Forms are a badly designed part of HTML


    | htmhell.dev
  49. Don't leave the screen reader hungry


    | htmhell.dev
  50. Giving pages a clear shape by using headings


    | htmhell.dev
  51. Statistics made simple


    | tonsky.me
  52. Them’s the Breaks


    | htmhell.dev
  53. The Wonderful World of Web Feeds


    | htmhell.dev
  54. Hell is other people's markup


    | htmhell.dev
  55. A11y Considerations in Math on the Web


    | htmhell.dev
  56. How HTML changes in ePub


    | htmhell.dev
  57. a11y freedom beaver


    | htmhell.dev
  58. Discover Dialog


    | htmhell.dev
  59. What's wrong with this HTML, and is it valid?


    | htmhell.dev
  60. Controlling dialogs and popovers with the Invoker Commands API


    | htmhell.dev
  61. Accessible by Design: The Role of the 'lang' Attribute


    | htmhell.dev
  62. IDREFs: What they are and how to use them


    | htmhell.dev
  63. Referencing HTML elements inside Shadow DOM


    | htmhell.dev
  64. Speculation rules improvements


    | htmhell.dev
  65. Using the Ancient Evils for Debugging


    | htmhell.dev
  66. Top layer troubles: popover vs. dialog


    | htmhell.dev
  67. The 2025 Go Cryptography State of the Union


    | words.filippo.io
  68. Claude Code Can Debug Low-level Cryptography


    | words.filippo.io
  69. v1.3.0


    | github.com
  70. v1.2.0


    | github.com
  71. v1.1.0


    | github.com
  72. v1.0.1


    | github.com
  73. v1.0.0


    | github.com
  74. datalists are more powerful than you think


    | htmhell.dev
  75. Boost website speed with prefetching and the Speculation Rules API


    | htmhell.dev
  76. Misleading Icons: Icon-Only-Buttons and Their Impact on Screen Readers


    | htmhell.dev
  77. The underrated <dl> element


    | htmhell.dev
  78. Preloading fonts for web performance with link rel="preload"


    | htmhell.dev
  79. The search input: They almost got it right


    | htmhell.dev
  80. The devil is in the <details>


    | htmhell.dev
  81. PSA: Stop using the title attribute as tooltip!


    | htmhell.dev
  82. Grouping form fields


    | htmhell.dev
  83. My favourite colour is Chuck Norris red


    | htmhell.dev
  84. Getting Oriented with HTML Video


    | htmhell.dev
  85. Microdata for books


    | htmhell.dev
  86. How I gained a new perspective on ARIA


    | htmhell.dev
  87. You don’t need the isOpen class


    | htmhell.dev
  88. The Gift You Do NOT Want: A Div in a Button's Clothing


    | htmhell.dev
  89. Page by Page: How Pagination Makes the Web Accessible


    | htmhell.dev
  90. Improving User Experience for Multilingual Web Browsing


    | htmhell.dev
  91. HTML and CSS I didn't even know about before I started creating content in Japanese


    | htmhell.dev
  92. Makeshift hot reload


    | htmhell.dev
  93. Submit to the Quirks of HTML


    | htmhell.dev
  94. Native HTML light and dark color scheme switching


    | htmhell.dev
  95. Past HTML, Future HTML?


    | htmhell.dev
  96. Almost, but not quite, entirely unlike...


    | htmhell.dev
  97. aria-labelledby = self


    | htmhell.dev
  98. Forced Colors Mode Futility


    | htmhell.dev
  99. Control the Viewport Resize Behavior on mobile with `interactive-widget`


    | htmhell.dev
  100. Smooth Multi-Page Experiences with Just a Few Lines of CSS


    | htmhell.dev
  101. Starting off right: Where autofocus shines


    | htmhell.dev
  102. A link on a logo in the header, what should the alt-text be?


    | htmhell.dev
  103. #34 a button is not a link


    | htmhell.dev
  104. #33 make me one (input) with everything


    | htmhell.dev
  105. Never underestimate HTML


    | htmhell.dev
  106. The devil is in the details: a look into a disclosure widget markup


    | htmhell.dev
  107. ARIA Live Regions


    | htmhell.dev
  108. The Implied Web


    | htmhell.dev
  109. Design pattern for custom tooltips


    | htmhell.dev
  110. Boosting testing efficiency: how semantic HTML transforms End-to-End testing


    | htmhell.dev
  111. The road to HTMHell is paved with semantics


    | htmhell.dev
  112. Revisiting Fundamentals - Semantic lists for Improved Accessibility


    | htmhell.dev
  113. Swallowing camels


    | htmhell.dev
  114. The Ghosts of Markup Past


    | htmhell.dev
  115. Getting started with Web Performance 🚀


    | htmhell.dev
  116. HTML: The Bad Parts


    | htmhell.dev
  117. Test-driven HTML and accessibility


    | htmhell.dev
  118. The hidden attribute in HTML


    | htmhell.dev
  119. Template for accessibility guidelines


    | htmhell.dev
  120. What the slot?


    | htmhell.dev
  121. The hidden depths of the input element


    | htmhell.dev
  122. Security Headers using <meta>


    | htmhell.dev
  123. Web Components FTW!


    | htmhell.dev
  124. The Hellish History of HTML: An incomplete and personal account


    | htmhell.dev
  125. Back to Basics: 5 HTML attributes for improved accessibility and user experience


    | htmhell.dev
  126. The Form Attribute - Enhancing Form Layout Flexibility


    | htmhell.dev
  127. You don't need JavaScript for that


    | htmhell.dev
  128. The UX of HTML


    | htmhell.dev
  129. v0.5.1


    | github.com
  130. v0.5.0


    | github.com
  131. Preventing form submission with zero Javascript


    | htmhell.dev
  132. Enforcing better HTML markup with Eleventy


    | htmhell.dev
  133. What is the Difference Between Alternative Text, Long Description, and Caption?


    | htmhell.dev
  134. A Theory of Web Relativity


    | htmhell.dev
  135. Common nesting issues in HTML


    | htmhell.dev
  136. Do you know color-scheme?


    | htmhell.dev
  137. Mini-guide to add an image


    | htmhell.dev
  138. Modern HTML as a foundation for progressive enhancement


    | htmhell.dev
  139. 5 HTML elements, And a partridge in a despair tree


    | htmhell.dev
  140. Get that marquee ✨AeStHeTiC✨


    | htmhell.dev
  141. Table Like It's 2023


    | htmhell.dev
  142. One day we'll have a fully customisable select


    | htmhell.dev
  143. DOM Clobbering


    | htmhell.dev
  144. There can be only one: Options for building “choose one” fields


    | htmhell.dev
  145. Dear developer, your assumptions are wrong


    | htmhell.dev
  146. You don't need HTML!


    | htmhell.dev
  147. Improving SEO without knowing where to start


    | htmhell.dev
  148. Meaningful labels using ARIA – or not.


    | htmhell.dev
  149. Adding Complementary Performance Data to Your Site


    | htmhell.dev
  150. Reading the meter


    | htmhell.dev
  151. Landmarks and where to put them


    | htmhell.dev
  152. Using SRI to protect from malicious JavaScript


    | htmhell.dev
  153. You Don't Need ARIA For That


    | htmhell.dev
  154. How to transfigure wireframes into HTML


    | htmhell.dev
  155. #32 almost a proper close button


    | htmhell.dev
  156. #31 additional “assistance”


    | htmhell.dev
  157. #30 Bullet “list”


    | htmhell.dev
  158. #29 Randomly grouping content


    | htmhell.dev
  159. #28 alert level 1


    | htmhell.dev
  160. #27 <a6>


    | htmhell.dev
  161. #26 HTMHell special: tasty buttons


    | htmhell.dev
  162. #25 A link is a button is a link


    | htmhell.dev
  163. #24 A placeholder is not a label


    | htmhell.dev
  164. #23 A card pattern


    | htmhell.dev
  165. #22 the good ol’ div link


    | htmhell.dev
  166. #21 Legendary legend!


    | htmhell.dev
  167. #20 HTMHell special: close buttons


    | htmhell.dev
  168. #19 heading in the wrong direction


    | htmhell.dev
  169. #18 main divigation


    | htmhell.dev
  170. #17 inaccessible cards


    | htmhell.dev
  171. #16 alt, no wait…, aria-label, no wait…, alt


    | htmhell.dev
  172. #15 letter by letter


    | htmhell.dev
  173. #14 not my type


    | htmhell.dev
  174. #13 link or label


    | htmhell.dev
  175. #12 accessible poll yes/no


    | htmhell.dev
  176. #11 The trigram for heaven


    | htmhell.dev
  177. #10 <section> is no replacement for <div>


    | htmhell.dev
  178. #9 Cookie Consent from Hell


    | htmhell.dev
  179. #8 anchor tag used as button


    | htmhell.dev
  180. #7 multiple duplicate ids and table layout


    | htmhell.dev
  181. #6 link with void operator as href value


    | htmhell.dev
  182. #5 button-like-link


    | htmhell.dev
  183. #4 link-also-button


    | htmhell.dev
  184. #3 image-buttons


    | htmhell.dev
  185. #2 div with button role


    | htmhell.dev
  186. #1 button disguised as a link


    | htmhell.dev