5 Things You Didn’t Know About the Viewport Meta Element (dxs )Nov 3, 2026 2491 metadata , viewport , mobile , zooming , accessibility , performance The Frankenstein Table (pre /css )Oct 29, 2026 2490 css , tables What Should You Put on a Dynamic Custom Social Media Card Image? (chr /fro )Oct 26, 2026 2489 social-media , open-graph , metadata , images HTML5 Audio Autoplay Loop: Background Music Guide Oct 23, 2026 2488 guides , multimedia , javascript Building an Isolated Preview for AI-Generated HTML (fro )Oct 22, 2026 2487 ai , testing , security HTML-in-Canvas: Where Interactive Content and High Performance Graphics Meet (nma )Oct 22, 2026 2486 videos , canvas How to Set Up Web Page Minification With Jekyll (j9t )Oct 21, 2026 2485 how-tos , minification , jekyll , html-minifier The Minifier Benchmarks Project (j9t )Oct 15, 2026 2484 websites , minification , metrics , comparisons , html-minifier , htmlnano , minify-html , minimize , swc , css , javascript , svg My Interop 2027 Rankings (mey )Oct 14, 2026 2483 web-platform , interoperability , javascript , css HTML Semantics in Practice: Building More Accessible and Maintainable Web Pages Oct 14, 2026 2482 semantics , accessibility , maintainability , conformance , keyboard-navigation , headings , forms , responsive-design , testing Sara Soueidan—Fireside (sar +)Oct 13, 2026 2481 podcasts , interviews , accessibility , css The HTML Details That Make Forms More Accessible (ron )Oct 12, 2026 2480 forms , accessibility , examples My Interop 2027 Rankings (val )Oct 11, 2026 2479 interoperability , web-platform , svg , css , images , javascript , apis My Top Picks for Interop 2027 (sar )Oct 11, 2026 2478 interoperability , web-platform , aria , css 5 Good Choices for HTML Containers (pre /fro )Oct 9, 2026 2477 examples When CSS Layout Order Stops Matching the HTML (ron )Oct 9, 2026 2476 css , source-order , layout The Web Needs Interactive Lists (cod )Oct 8, 2026 2475 lists , semantics , accessibility , aria Standards in Progress: Making Video Posters Accessible, Responsive, and an Element (sco )Oct 7, 2026 2474 multimedia , accessibility , standards Recursion Is Dead and HTML Killed It (dav )Oct 6, 2026 2473 javascript , streaming 8 Ways to Turn a Marketing Brief Into a Testable Website Oct 5, 2026 2472 marketing , documentation , processes Accepting AI-Generated Front-End Code: What Review Is for Now Oct 5, 2026 2471 ai , code-reviews , components , wcag , accessibility , compliance , automation State of HTML 2026 (dev )Oct 4, 2026 2470 surveys Tales from the 90s: On XML’s Great Future, the Mobile Web on a 4×20-Character Screen, and Accessibility as the Original Responsive Design (dxs )Oct 1, 2026 2469 history , standards , xml , sgml , xhtml , hdml , responsive-design , graceful-degradation , mobile , accessibility , user-experience You Don’t Know Bidi (and Neither Does ChatGPT) (moj /fro )Sep 30, 2026 2468 css , internationalization , unicode , chatgpt Lazy Loading Images and Media: How Far Ahead Browsers Fetch (ben /cal )Sep 28, 2026 2467 lazy-loading , images , multimedia , debugging , performance Why I Built a Website Clone Using HTML and CSS Sep 23, 2026 2466 css , learning What Is Palpable Content? (rus )Sep 20, 2026 2465 terminology , accessibility What Are Form Controls? (rus )Sep 19, 2026 2464 forms , terminology , examples Custom Attributes Polyfill (kei )Sep 19, 2026 2463 polyfills Periodic Table of HTML Elements (aba )Sep 19, 2026 2462 overviews 19½ Things You Didn’t Know About Accessibility in HTML and CSS (mat )Sep 17, 2026 2461 slides , accessibility , css It’s All About the Permissions Recovery (chr /fro )Sep 11, 2026 2460 browsers , permissions , support , geolocation 2026: 2 of the Global Top 200 Websites Use Valid HTML (j9t )Sep 10, 2026 2459 conformance , metrics , quality , craft My HTML Boilerplate (val )Sep 9, 2026 2458 templates The Browser’s Own Camera Button: Testing “<camera>” (mcs )Sep 9, 2026 2457 apis Support for “headers” Attribute (aar )Sep 8, 2026 2456 tables , attributes , accessibility , support , screen-readers , nvda , firefox , jaws , chrome , edge , voiceover , safari , talkback Antiquated HTML Snippets and Artefacts (val )Sep 8, 2026 2455 metadata , geolocation , conditional-comments , internet-explorer , browsers , amp , twitter+x “initial-scale” No Longer Needed Sep 2, 2026 2454 metadata You Don’t Need “initial-scale” in Your HTML (val )Sep 2, 2026 2453 metadata New Things You Should Know About HTML Here in Mid 2026 (chr /fro )Sep 2, 2026 2452 web-components , canvas What’s !important #18: “<geolocation>”, Syntax ::highlight()ing, “named-feature()”, and More (css )Aug 31, 2026 2451 css , retrospectives , web-platform , link-lists What Is the Best Web Page Minifier in 2026? (apo )Aug 30, 2026 2450 minification , tooling , html-minifier , htmlnano , minify-html , minimize , swc , metrics , comparisons The 4 Hs of HTML (alv )Aug 24, 2026 2449 semantics Enhanced Spell Checking on the Web (bka )Aug 18, 2026 2448 apis , javascript My HTML Boilerplate in 2026 (mat )Aug 17, 2026 2447 templates Why “rel="noopener"” Is Obsolete for Links Aug 17, 2026 2446 links , privacy , security Exploring Compose HTML for Server Side Rendering (jet )Aug 14, 2026 2445 server-side-rendering Understanding “aria-details” (rus )Aug 13, 2026 2444 attributes , aria , accessibility Delayed-Then-Instant Tooltips With HTML and CSS Alone (chr /fro )Aug 13, 2026 2443 tooltips , css Understanding “aria-roledescription” (rus )Aug 12, 2026 2442 attributes , aria , accessibility HTML Over WebSockets: Real-Time SPAs With Barely Any JavaScript (and )Aug 11, 2026 2441 websockets , single-page-apps , link-lists Building an Accordion the Browser Can Search Aug 10, 2026 2440 accordions , hiding , search , css , javascript Why You Might Want to Build Your Web App in Canvas Instead of HTML Aug 9, 2026 2439 canvas , web-apps , comparisons HTML Can Do That (chr )Aug 8, 2026 2438 examples Don’t Use a Class for That (alv )Aug 7, 2026 2437 attributes , selectors , css Using and Styling the Dialog Element (geo /css )Aug 7, 2026 2436 modals , css CSS: The Bomb Inside Your Inbox (gaz /por )Aug 6, 2026 2435 css , csp , email , security A11y 101—3.3.4 Error Prevention (nat )Aug 3, 2026 2434 introductions , accessibility , wcag , errors , javascript Something Nobody Told You About The Image Element (It Can Overflow) (css /fro )Aug 3, 2026 2433 images , overflow , css Fixing My Tooltip Accessibility Mistake (jaf )Jul 28, 2026 2432 accessibility , tooltips , aria , attributes , mistakes The Difference Between a Button and a Link Jul 28, 2026 2431 buttons , links , comparisons Robin Berjon—Fireside (rob +)Jul 21, 2026 2430 videos , interviews , w3c , web Why I Built a Semantic HTML First Library (kar )Jul 20, 2026 2429 libraries , components , semantics Use Cases for “aria-expanded” (stv /pic )Jul 16, 2026 2428 attributes , aria , accessibility , examples Protecting HTML Content Against Copying (jsd )Jul 14, 2026 2427 css , javascript , canvas , obfuscation , techniques , comparisons HTML in Canvas: Render Real DOM Inside “<canvas>” Jul 13, 2026 2426 canvas , javascript Recreating a 1990 Book Cover (in HTML and CSS) (blo )Jul 13, 2026 2425 css “focusgroup” Tests (aar )Jul 5, 2026 2424 attributes , focus , chrome , browsers , examples , accessibility On the Semantic Web (kar )Jul 1, 2026 2423 semantics , buttons , forms Clickable Table Rows Are a Bad Idea (tem )Jun 30, 2026 2422 tables , accessibility , keyboard-navigation React’s Architectural Accessibility Gaps Jun 30, 2026 2421 react , accessibility , wcag Modes and Themes That Stick—Building a Persistent Toggle Solution (stu )Jun 30, 2026 2420 toggles , forms , dark-mode , theming , flash-of-x What’s !important #14: Gap Decorations, “random()”, “<select>” Field Sizing, and More (dxn /css )Jun 30, 2026 2419 css , retrospectives , web-platform , link-lists Introducing the “<usermedia>” HTML Element Jun 29, 2026 2418 introductions , chrome , browsers Building an Accessible Modal Dialog on the Native “<dialog>” Jun 24, 2026 2417 modals , accessibility , typescript Animating the “dialog” Element Using View Transitions (rik )Jun 23, 2026 2416 modals , animations , view-transitions , javascript , css I Stored a Website in a Favicon Jun 19, 2026 2415 favicons , images , experiments The Siren Song of “ariaNotify()” (wil /css )Jun 17, 2026 2414 javascript , aria , notifications , attributes , jaws , nvda , voiceover , screen-readers , accessibility The Golden Rule of Customizable “select” (sar /web )Jun 15, 2026 2413 forms , safari , browsers Dark Mode With Web Standards (oll )Jun 12, 2026 2412 dark-mode , standards , javascript , svg , css Semantica11y—Semantic HTML for Everyone (ste )Jun 11, 2026 2411 packages , semantics , accessibility “headingoffset” Is Not the Document Outline Algorithm (aar )Jun 11, 2026 2410 attributes , headings How Building an HTML-First Site Doubled Our Users Overnight (moh )Jun 10, 2026 2409 web-components , validation , traffic , case-studies WWDC26: Rediscover the HTML “select” Element Jun 8, 2026 2408 videos , forms , css WWDC26: Get Started With the HTML “model” Element Jun 8, 2026 2407 videos , introductions , animations Streaming HTML (oll )Jun 5, 2026 2406 streaming , javascript Another Stab at the Perfect CSS Pie Chart… Sans JavaScript (vil /css )Jun 4, 2026 2405 css Context-Aware Headings in HTML (mat )Jun 3, 2026 2404 headings , attributes Astro: HTML First, JavaScript When You Need It (jad )Jun 3, 2026 2403 astro , javascript Gary Illyes: The Web’s JavaScript Mess Is an AI Agent Nightmare (ppc )Jun 1, 2026 2402 ai , ai-agents , javascript , rag , llmstxt Re: Accessibility Question: Is Nesting Interactive Elements Bad? (aar )May 29, 2026 2401 accessibility , nesting Accessible (I Think) Split-Cell Table Headers (mey )May 28, 2026 2400 css , tables Lost, Forgotten, and Unfamiliar HTML (tho )May 27, 2026 2399 attributes Managing Anchor Associations With Data Attributes and Advanced “attr()” (dxn /fro )May 27, 2026 2398 anchor-positioning , custom-data , css , functions , attributes Not Every Form Field Needs to Be in a Fieldset (jea )May 24, 2026 2397 forms , design-systems , accessibility What’s New in Web UI (una +)May 22, 2026 2396 videos , web-platform , user-experience , principles , canvas , css , google Don’t Put “aria-label” on Generic Elements Like Divs (mat )May 22, 2026 2395 attributes , aria , screen-readers , support , accessibility Accessible by Design: HTML, CSS, JavaScript, and ARIA Techniques That Scale May 21, 2026 2394 videos , accessibility , css , javascript , aria Declarative Partial Updates (tun +)May 19, 2026 2393 streaming , apis , chrome , browsers Introducing the HTML-in-Canvas API Origin Trial (nma )May 19, 2026 2392 introductions , canvas , apis , origin-trials , chrome , browsers A Few Ways of Specifying Per-Theme Colours in Only CSS May 16, 2026 2391 css , dark-mode , colors , techniques hihtml (j9t )May 13, 2026 2390 packages , npm , conformance , links , link-rot , minification , html-minifier , optimization , quality You Don’t Know HTML Lists May 13, 2026 2389 lists , semantics Install Web Apps With the New HTML “install” Element (pat )May 12, 2026 2388 web-apps , installing , origin-trials , chromium AI and HTML: Validating, Omitting Optional Code, and Minifying as Token Optimization (j9t )May 12, 2026 2387 ai , token-optimization , conformance , minimalism , minification , optimization Not All Hidden Content Is Equal: How Different Hiding Methods Impact Accessibility May 12, 2026 2386 accessibility , hiding , css , aria , attributes , techniques , comparisons In-n-Out-Styling With Chris Coyier (chr /sma )May 11, 2026 2385 videos , css Out With the JS, in With the HTML (jim )May 10, 2026 2384 javascript , refactoring The “<selectmenu>” Element: Stop Using JavaScript Dropdown Libraries May 10, 2026 2383 forms , javascript , css Using Claude Code: The Unreasonable Effectiveness of HTML May 8, 2026 2382 claude , ai , efficiency HTML.md (j9t )May 6, 2026 2381 documentation , ai What’s !important #10: HTML-in-Canvas, Hex Maps, E-Ink Optimization, and More (dxn /css )May 1, 2026 2380 css , retrospectives , web-platform , link-lists ARIA Roles and Web Accessibility: A Quick Guide (lev )Apr 30, 2026 2379 guides , accessibility , aria , attributes Hard to Read One-Liners (kri )Apr 28, 2026 2378 css , collaboration The End of Responsive Images (wil /pic )Apr 23, 2026 2377 images , responsive-design Visual Validation Feedback for Form Fields (aar )Apr 22, 2026 2376 forms , validation , javascript The Web Is Fun Again: First Experiments With HTML in Canvas (ami /fro )Apr 21, 2026 2375 experiments , canvas , javascript Multi-Level Navigation: The Challenge of Identifying Parent Sections for Screen Readers (ele )Apr 21, 2026 2374 navigation , aria , screen-readers , accessibility A11y 101: 3.1.1 Language of Page (nat )Apr 20, 2026 2373 introductions , accessibility , wcag , localization My Thoughts on the “focusgroup” Attribute Proposal (stv )Apr 20, 2026 2372 forms , focus , attributes Video as Code: A Deep Dive Into HeyGen’s Hyperframes Apr 19, 2026 2371 deep-dives , multimedia , css , tooling The Radio State Machine (ami /css )Apr 14, 2026 2370 css , state-management The Community Has Spoken, Now We Need Browsers Vendors to Help: A “<rangegroup>” Update (uti )Apr 14, 2026 2369 community , browsers Why AI Sucks at Front End (arg )Apr 12, 2026 2368 ai , css How to Use Standard HTML Video and Audio Lazy-Loading on the Web Today (sco )Apr 7, 2026 2367 how-tos , multimedia , lazy-loading , performance Old Advice: Hiding Content Has No Effect on Accessible Name or Description Calculation (ste )Apr 7, 2026 2366 accessibility , hiding , aria Making Emojis and Icons Screen Reader Accessible (pop )Apr 1, 2026 2365 emoji , icons , images , accessibility , screen-readers Semantic HTML Just Might Make Your CSS Less Fragile (sch )Mar 30, 2026 2364 css , semantics , resilience There’s No Need to Include “Navigation” in Your Navigation Labels (tem )Mar 30, 2026 2363 accessibility , labels , navigation Mike Smith Fireside (ste )Mar 29, 2026 2362 videos , interviews , standards , accessibility , community Headings the Right Way: Site Building Tips for Accessible Page Content (dru )Mar 29, 2026 2361 videos , headings , accessibility Bad Example: Timesheet Submit Button (rac )Mar 27, 2026 2360 buttons , accessibility Tooltips That Work for Everyone (ele )Mar 25, 2026 2359 tooltips , accessibility , aria , attributes , screen-readers , nvda , jaws Quick Tip: Don’t Use “<abbr>” (nat )Mar 20, 2026 2358 tips-and-tricks , screen-readers , support , accessibility Astro: How to Set Up More Powerful HTML Minification (in 31 Seconds) (j9t )Mar 17, 2026 2357 how-tos , astro , html-minifier , minification , optimization New Bookmarklet—Structure Revealer (llo )Mar 13, 2026 2356 bookmarklets , accessibility Abusing Customizable Selects (pat /css )Mar 11, 2026 2355 forms , css , functions Testing Browser Support for “focusgroup” Mar 9, 2026 2354 attributes , focus , javascript html-minifier-terser vs. htmlnano vs. minify-html (2026) Mar 9, 2026 2353 minification , nodejs , html-minifier , htmlnano , minify-html , metrics , comparisons The Enforced Accessibility of the “geolocation” Element (chr /fro )Mar 9, 2026 2352 geolocation , accessibility You Don’t Know HTML Tables Mar 5, 2026 2351 tables , javascript The Different Ways to Select “<html>” in CSS (dxn /css )Mar 5, 2026 2350 css , selectors Request for Developer Feedback: “focusgroup” (jac )Mar 5, 2026 2349 attributes , focus , chromium , browsers Your Skip Link Targets May Not Need “tabindex=-1” to Work Properly (mat )Mar 4, 2026 2348 skip-links , attributes , accessibility 1995: From Batman Forever’s Cinematic Design to HTML Tables (ric )Mar 3, 2026 2347 web , history , design , netscape , mosaic , browsers , tables , layout , wysiwyg , code-editors Figcaptions Versus Alt Text (tem )Feb 28, 2026 2346 images , alt-text , accessibility , comparisons You Can Use Newline Characters in URLs (lem )Feb 28, 2026 2345 urls , data-urls , links , attributes “role=presentation” Is No Alternative for “aria-hidden=true” (mat )Feb 27, 2026 2344 accessibility , aria , attributes , comparisons When Is a Link Not a Link? (dec )Feb 25, 2026 2343 links , semantics , accessibility Matt May Speaks (mat +)Feb 23, 2026 2342 videos , interviews , accessibility , standards “aria-haspopup” Might Not Do What You Think It Does (mat )Feb 23, 2026 2341 aria , attributes , navigation , accessibility The Problem With HTML Reset Buttons (ada )Feb 22, 2026 2340 buttons , user-experience Native HTML Components Don’t Guarantee Good UX (ada )Feb 22, 2026 2339 components , user-experience Standard HTML Video and Audio Lazy-Loading Is Coming (sco )Feb 22, 2026 2338 multimedia , lazy-loading , standards , performance Precompressed HTML at the Edge: Eleventy Meets Cloudflare Workers (the )Feb 21, 2026 2337 edge-computing , eleventy , cloudflare , caching , compression , brotli , performance An Official* Logo for HTML (zac )Feb 20, 2026 2336 Everything You Never Wanted to Know About “visually-hidden” (dbu )Feb 20, 2026 2335 css , hiding , accessibility Notes on Relying on the ARIA Authoring Practices Guide (ste )Feb 19, 2026 2334 aria , accessibility Mastering Dialog Accessibility Feb 12, 2026 2333 accessibility , modals , aria You Might Not Need “role="presentation"” (stv /pic )Feb 12, 2026 2332 aria , accessibility Virtual Scrolling for Billions of Rows—Techniques From HighTable (sev )Feb 12, 2026 2331 tables , scrolling , performance , react You Know What? Just Don’t Split Words Into Letters (aar )Feb 10, 2026 2330 accessibility , screen-readers , support Trying to Make the Perfect Pie Chart in CSS (mon /css )Feb 9, 2026 2329 css How to Improve Your HTML Game (j9t )Feb 5, 2026 2328 how-tos , conformance , learning , career Introduction to the New HTML Element “<geolocation>” (mat )Feb 4, 2026 2327 introductions , geolocation Accessible Inline Collapsible (eri )Feb 2, 2026 2326 accessibility , disclosure-widgets Repeatable Form Fields Made Simple (aar )Jan 31, 2026 2325 forms , web-components More Invoker Commands, and More Reasons Not to Use JavaScript Please (paw )Jan 27, 2026 2324 examples SPAs Are a Performance Dead End (yeg )Jan 25, 2026 2323 single-page-apps , performance Barriers From Links With ARIA (aar )Jan 22, 2026 2322 accessibility , links , aria I Learned the First Rule of ARIA the Hard Way (css )Jan 21, 2026 2321 accessibility , aria , semantics Faking a Fieldset-Legend (tyl /clo )Jan 20, 2026 2320 forms , css SEO (htt )Jan 15, 2026 2319 web-almanac , studies , research , metrics , seo , robotstxt , llmstxt , links , content , structured-data , amp , internationalization Accessible Faux-Nested Interactive Controls (eri /pic )Jan 15, 2026 2318 accessibility , conformance , nesting The Incredible Overcomplexity of the Shadcn Radio Button (pau )Jan 15, 2026 2317 forms , shadcn , complexity So You Think Your Website Is Doing Great (cit )Jan 14, 2026 2316 javascript , css , quality EPUB and HTML—Survey Results and Next Steps (rei /w3c )Jan 14, 2026 2315 surveys , epub Introducing the “<geolocation>” HTML Element (tom +)Jan 13, 2026 2314 introductions , geolocation , chrome , browsers ARIA Roles Can Remove Their Children’s Semantics (ste )Jan 13, 2026 2313 aria , semantics , accessibility A Polyfill for the HTML “switch” Element (tom )Jan 12, 2026 2312 forms , polyfills What Is the Minimum Markup Needed to Create a Modal? (rus )Jan 10, 2026 2311 modals , minimalism , css , accessibility Very Good Components (bee )Jan 8, 2026 2310 websites , components How Browsers Work (dmy )Jan 4, 2026 2309 websites , guides , browsers , urls , http , tcp , dom How Can You Tell What’s Allowed Inside Each HTML Element? (rus )Dec 31, 2025 2308 conformance HTML Content Categories (rus )Dec 30, 2025 2307 semantics The Final Nail in the HTML5 Document Outline Coffin (tem )Dec 29, 2025 2306 headings , accessibility Opening and Closing Dialogs Without JavaScript Using HTML Invoker Commands (sch )Dec 29, 2025 2305 modals Revisiting HTML Streaming for Modern Web Performance (per )Dec 26, 2025 2304 performance , streaming The Three Semantics of HTML (mat )Dec 24, 2025 2303 semantics For the Love of “<details>” (dev /mat )Dec 23, 2025 2302 disclosure-widgets The HTML Elements Time Forgot (val /mat )Dec 22, 2025 2301 history Why “role="button"” on a “<button>” Does Nothing (rus )Dec 22, 2025 2300 buttons , attributes , aria The Two Most Important Tools for HTML Developers Dec 22, 2025 2299 tooling , conformance , minification , html-minifier , htmlnano , swc 2026 Predictions: The Next Big Shifts in Web Accessibility (web )Dec 22, 2025 2298 accessibility , outlooks , ai , wcag Did You Know Some ARIA Roles Remove Child Semantics? (rus )Dec 21, 2025 2297 aria , semantics , accessibility Styling by Language: Using the “lang” Attribute for Multilingual Design (mat )Dec 21, 2025 2296 internationalization , css The Many Lives of the Page Title (kat /mat )Dec 20, 2025 2295 user-experience , accessibility , wcag Accessibility Is Personal (css )Dec 19, 2025 2294 accessibility Semantics Beyond the Tag Name (kno /mat )Dec 19, 2025 2293 attributes , aria , semantics , accessibility The Anatomy of an Accessible Text Field (ink )Dec 19, 2025 2292 forms , accessibility , labels Targeting by Reference in the Shadow DOM (mey )Dec 19, 2025 2291 shadow-dom , javascript Forms Are a Badly Designed Part of HTML (jen /mat )Dec 18, 2025 2290 forms , standards How “aria-labelledby” Really Works (rus )Dec 17, 2025 2289 accessibility , aria , attributes Don’t Leave the Screen Reader Hungry (ger /mat )Dec 17, 2025 2288 emoji , screen-readers , accessibility State of HTML 2025 [Results] (sac /dev )Dec 16, 2025 2287 surveys , metrics Does Chrome Get the “<header>” Element Wrong? (rus )Dec 16, 2025 2286 aria , chrome , browsers Giving Pages a Clear Shape by Using Headings (mat )Dec 16, 2025 2285 headings Them’s the Breaks (tyl /mat )Dec 15, 2025 2284 I Ported JustHTML From Python to JavaScript With Codex CLI and GPT-5.2 in 4.5 Hours (sim )Dec 15, 2025 2283 migrating , ai , python , javascript , tooling , parsing The “<time>” Element Should Actually Do Something (nol )Dec 14, 2025 2282 time , semantics Hell Is Other People’s Markup (llo /mat )Dec 13, 2025 2281 auditing , tooling Changes in the World of HTML Minifiers (apo )Dec 13, 2025 2280 tooling , minification , html-minifier Why We Teach Our Students Progressive Enhancement (cyd )Dec 13, 2025 2279 progressive-enhancement , css , javascript , training How HTML Changes in EPUB (rob /mat )Dec 11, 2025 2278 epub , standards A11y Freedom Beaver (ste /mat )Dec 10, 2025 2277 accessibility , aria Useful Patterns for Building HTML Tools (sim )Dec 10, 2025 2276 ai , tooling Discover Dialog (sar /mat )Dec 9, 2025 2275 modals , javascript , css Comparing HTML Minifiers (j9t )Dec 8, 2025 2274 minification , tooling , html-minifier , htmlnano , metrics , comparisons What’s Wrong With This HTML, and Is It Valid? (pat /mat )Dec 8, 2025 2273 standards , conformance , web-platform That Time I Tried Explaining HTML and CSS to My 5-Year Old Niece (css )Dec 8, 2025 2272 css , learning Controlling Dialogs and Popovers With the Invoker Commands API (sta /mat )Dec 7, 2025 2271 modals , pop-overs , apis , attributes NoLoJS: Reducing the JS Workload With HTML and CSS (aar /per )Dec 6, 2025 2270 disclosure-widgets , forms , modals , pop-overs , navigation , scrolling , positioning Accessible by Design: The Role of the “lang” Attribute (col /mat )Dec 6, 2025 2269 accessibility , internationalization , attributes , metrics IDREFs: What They Are and How to Use Them (kil /mat )Dec 5, 2025 2268 forms , aria , accessibility Referencing HTML Elements Inside Shadow DOM (meh /mat )Dec 4, 2025 2267 shadow-dom , web-components HTML Semantics: The Short Descriptions of All 113 Elements (j9t )Dec 3, 2025 2266 semantics , overviews Using the Ancient Evils for Debugging (bol /mat )Dec 2, 2025 2265 debugging Exploring Large HTML Documents on the Web (per )Dec 2, 2025 2264 performance , metrics How Modern Browsers Work (add )Nov 29, 2025 2263 browsers , chromium , network , parsing , painting , rendering , javascript-engines , v8 , memory , modules , javascript , css Eleventy: How to Set Up Effective HTML Minification (in 24 Seconds) (j9t )Nov 28, 2025 2262 how-tos , eleventy , html-minifier , minification , optimization What Are Invokers? Interactivity Without JavaScript (tol /syn )Nov 26, 2025 2261 videos , javascript , pop-overs Testing Methods: Page Titled (dec )Nov 19, 2025 2260 accessibility , wcag , testing A Complete Guide to the HTML Number Input (oll )Nov 14, 2025 2259 guides , attributes , forms “::details-content”: Style Expandable Content Without Wrapper Divs (tre )Nov 11, 2025 2258 disclosure-widgets , css Why Headings Are Important in HTML: Structure, Accessibility, and SEO Nov 11, 2025 2257 headings , accessibility , seo Headings: Semantics, Fluidity, and Styling—Oh My! (geo /css )Nov 10, 2025 2256 headings , css Link vs. Button: Choosing the Right Element for the Right Job (tpg )Nov 10, 2025 2255 links , buttons , accessibility , wcag , comparisons Tailwind CSS Won the War… but We’re the Losers Nov 7, 2025 2254 tailwind , css , web-platform Now Available: “On Web Development II”! (j9t )Nov 6, 2025 2253 books , css , engineering-management , maintainability , quality Explaining the Accessible Benefits of Using Semantic HTML Elements (geo /css )Nov 6, 2025 2252 semantics , accessibility Just Use a Button (cfe )Oct 31, 2025 2251 buttons , semantics HTML Minifier: A 12-Year Journey Building and Maintaining an Open Source Tool Oct 30, 2025 2250 minification , tooling , windows , asp-net , retrospectives Parenthetical Asidenotes (mey )Oct 28, 2025 2249 css ChatGPT Sez Build With Semantics First (ste )Oct 28, 2025 2248 chatgpt , chatgpt-atlas , ai , browsers , semantics , accessibility Don’t Forget These Tags to Make HTML Work Like You Expect (jim )Oct 26, 2025 2247 What’s an Interactive Element? (mat )Oct 24, 2025 2246 focus , concepts Challenging the Idea of “Optional HTML” (mar )Oct 22, 2025 2245 guest-posts , minimalism Links and Anchors: Ancient HTML and JS Magic in Your Browser (cod /wea )Oct 21, 2025 2244 css , javascript , links What State ARIA In? (tpg )Oct 20, 2025 2243 aria , accessibility Implicit Labels Aren’t (cfe )Oct 17, 2025 2242 forms , labels Headers, Headings, and Titles (tem )Oct 17, 2025 2241 headings , comparisons , terminology Page Headings Don’t Belong in the Header (tem )Oct 15, 2025 2240 headings , skip-links , accessibility A Look Into Customizable HTML “select” Elements Oct 15, 2025 2239 forms , css Tables: Beyond Rows and Columns (tpg )Oct 13, 2025 2238 accessibility , wcag , tables , semantics , jaws , nvda , screen-readers HTML “dialog”: Getting Accessibility and UX Right (jar )Oct 13, 2025 2237 modals , scrolling , accessibility , user-experience HTML—the Most Difficult Programming Language in the World (j9t )Oct 9, 2025 2236 programming , conformance , professionalism When to Use Modal vs. Dialog Components (a11 )Oct 7, 2025 2235 modals , aria , accessibility Numbers That Fall (Scroll-Driven Animations and Sibling Index) (chr /fro )Oct 7, 2025 2234 css , animations , scrolling , effects Lowriders and Websites (aaa )Oct 6, 2025 2233 css , craft Rethinking Cookie Dialogs (nat )Oct 6, 2025 2232 accessibility , disclosure-widgets , cookies , consent-management A Progressive Enhancement Challenge (chr /fro )Oct 3, 2025 2231 progressive-enhancement , javascript , feature-detection , support HTML’s Best Kept Secret: The “<output>” Tag (den )Oct 1, 2025 2230 Understanding the Removal of 4.1.1 Parsing in WCAG 2.2 (tpg )Oct 1, 2025 2229 accessibility , wcag , conformance How to Optimize Viewport for Mobile for Faster Interactions (deb )Oct 1, 2025 2228 how-tos , viewport , mobile , performance , optimization Let’s Play Accordion With the HTML “details” Element (ale )Sep 27, 2025 2227 disclosure-widgets , accordions Creating a Truly Accessible Flip Card (sib /tpg )Sep 24, 2025 2226 css , javascript , accessibility Web Development for Beginners: Creating Web Pages via HTML (rau )Sep 23, 2025 2225 fundamentals , urls , servers , forms The “picture” Element (kev )Sep 18, 2025 2224 A Quick Primer on Accessible Pagination (kar )Sep 17, 2025 2223 introductions , accessibility , pagination , css , assistive-tech “aria-label” or “title”? Screen Reader Behaviour Explained (a11 )Sep 15, 2025 2222 attributes , accessibility , screen-readers Navigating the World of Web Accessibility With Sara Soueidan (sar +)Sep 12, 2025 2221 videos , interviews , accessibility , wcag , aria , css Just Use HTML (cfe )Sep 10, 2025 2220 javascript Baby Steps Accessibility—Page Titles (dec )Sep 10, 2025 2219 microcontent , best-practices , accessibility 2025: 0 of the Global Top 200 Websites Use Valid HTML (j9t )Sep 10, 2025 2218 conformance , metrics , quality , craft Why Moving Away From SPAs Improves Usability, Accessibility, and SEO (inn )Sep 8, 2025 2217 single-page-apps , usability , accessibility , seo , semantics Screen Reader HTML Support—Lookup (ste )Sep 7, 2025 2216 screen-readers , accessibility , support , overviews Your Images Are (Probably) Oversized Sep 5, 2025 2215 images , pixel-density Why Did I Ever Abandon HTML/CSS? (syl )Sep 2, 2025 2214 css Tricks to Write HTML and CSS 10× Faster (jay )Aug 29, 2025 2213 css , efficiency , tips-and-tricks You No Longer Need JavaScript (reb )Aug 28, 2025 2212 javascript , css , examples Hack to the Future—Frontend (the )Aug 26, 2025 2211 history , css , javascript , design , layout , flash , image-replacement , libraries , frameworks , hacks , xhtml , tooling , testing , outlooks Opening a “details” Element From the URL (chr /fro )Aug 26, 2025 2210 disclosure-widgets , urls How to Create an Accessible Table With Clickable Rows (ale )Aug 25, 2025 2209 how-tos , tables , accessibility Design Hacks From the Pre-CSS Era (den /hac )Aug 22, 2025 2208 tables , layout , hacks , history A Proposal for Inline LLM Instructions in HTML Based on llms.txt (ind )Aug 20, 2025 2207 ai , llmstxt The First Rule of ARIA (nat )Aug 18, 2025 2206 accessibility , aria , principles Covering “hidden=until-found” (geo /css )Aug 15, 2025 2205 hiding 5 Heading Accessibility Issues to Avoid (pop )Aug 11, 2025 2204 accessibility , headings A Progressive Complexity Manifesto (che )Aug 10, 2025 2203 manifestos , complexity , web-apps , htmx , javascript , web-components , frameworks , principles HTML Popovers Shown on Interest Should Be Accessible on Mobile Devices (uti )Aug 7, 2025 2202 pop-overs , mobile , usability When HTML Speaks Clearly Aug 6, 2025 2201 accessibility , conformance , semantics HTML Is Dead, Long Live HTML (unc )Aug 6, 2025 2200 css , dom , standards , metrics A Few Things About the Anchor Element’s “href” You Might Not Have Known (jim )Aug 3, 2025 2199 attributes , links , data-urls More Than Just Text: The Real Power of Labels (tpg )Jul 31, 2025 2198 accessibility , labels , forms HTML-First, Framework-Second: Is JavaScript Finally Growing Up? Jul 29, 2025 2197 javascript , frameworks Web Components: Working With Shadow DOM (sma )Jul 28, 2025 2196 web-components , shadow-dom , dom The “figcaption” Problem (chr /fro )Jul 24, 2025 2195 css Why and How to Write Minimal and Valid HTML, a Link Guide (j9t )Jul 24, 2025 2194 minimalism , conformance , how-tos , guides , link-lists State of HTML 2025 Now Open (lea )Jul 22, 2025 2193 surveys How Semantics and ARIA Attributes Support Accessible Design (tpg )Jul 22, 2025 2192 accessibility , semantics , aria , attributes Why Semantic HTML Still Matters (jon )Jul 21, 2025 2191 semantics Super Short Note: Placeholder Perfidy (ste )Jul 21, 2025 2190 accessibility , placeholders A Label and a Name Walk Into a Bar (ste )Jul 14, 2025 2189 accessibility , labels , concepts , examples Why I’m Writing Pure HTML and CSS in 2025 Jul 14, 2025 2188 css Screen Reader HTML Support Tables (ste /tet )Jul 10, 2025 2187 support , screen-readers , jaws , nvda , accessibility HTML Minifier Next (a Maintained Fork of HTML Minifier) (j9t )Jul 9, 2025 2186 html-minifier , minification , optimization , tooling HTML Day 2025 (htm )Jul 7, 2025 2185 awareness-days What Is “popover=hint”? (una )Jul 7, 2025 2184 attributes , pop-overs Shadow DOM: The Ultimate Solution for Embedding Third-Party HTML Without CSS Conflicts Jul 2, 2025 2183 shadow-dom , dom , css Tabindex: What It Is, How It Works, and When to Use It (pop )Jul 1, 2025 2182 focus , keyboard-navigation , accessibility Custom Select (That Comes Up From the Bottom on Mobile) (chr /fro )Jul 1, 2025 2181 forms , css , animations , progressive-enhancement , mobile Google: Many Top Sites Have Invalid HTML and Still Rank (mat /sea )Jun 30, 2025 2180 google , conformance , quality , seo A Step Into the Spatial Web: The HTML Model Element in Apple Vision Pro (zac /web )Jun 26, 2025 2179 spatial-web , apple , xr The Mythical Magical Button (cri )Jun 24, 2025 2178 buttons , css , custom-properties , custom-data Know Your HTML (Yes, TSX Included) (hel )Jun 23, 2025 2177 semantics , accessibility CSS Cascade Layers vs. BEM vs. Utility Classes: Specificity Control (sma )Jun 19, 2025 2176 css , cascade , bem , presentational-html Selfish Reasons for Building Accessible Uis (nol )Jun 16, 2025 2175 accessibility , debugging , testing What I Wish Someone Told Me When I Was Getting Into ARIA (eri /sma )Jun 16, 2025 2174 accessibility , aria , assistive-tech , support Having “figure” Match Width of Contained Image (jef )Jun 13, 2025 2173 css , images Why Visual Website Builders Didn’t Take Off (whi )Jun 12, 2025 2172 videos , code-editors , wysiwyg , history Escaping “<” and “>” in Attributes—How It Helps Protect Against Mutation XSS (sec )Jun 12, 2025 2171 attributes , security , xss , escaping , chrome , browsers HTML Spec Change: Escaping “<” and “>” in Attributes (sec )Jun 12, 2025 2170 attributes , escaping , security , xss Is HTML Not a Programming Language? Jun 11, 2025 2169 programming Creating an Auto-Closing Notification With an HTML Popover (pre /css )Jun 9, 2025 2168 notifications , pop-overs ARIA/HTML Relationship Severance (ste )Jun 7, 2025 2167 accessibility , aria The “<output>” Element (kev )Jun 6, 2025 2166 HTML-Native Accordions (cfe )Jun 5, 2025 2165 accordions “aria-selected”: Practical Examples and Use Cases (flo /a11 )Jun 5, 2025 2164 accessibility , aria , examples How to Use ARIA Roles and Properties Effectively Jun 4, 2025 2163 how-tos , aria , accessibility Getting Creative With HTML Dialog (mal /css )Jun 3, 2025 2162 modals Up and Coming ARIA (web )May 30, 2025 2161 accessibility , aria HTML Only Experiments (ala )May 30, 2025 2160 websites , experiments The “col” Element (hey )May 29, 2025 2159 tables , semantics The Magic of the Most Minimal HTML Possible (and Why We Don’t Make Use of It) (j9t )May 27, 2025 2158 minimalism , maintainability What I Learnt About Making Websites by Reading Two Thousand Web Pages (ale )May 26, 2025 2157 css , conditional-comments , lessons Decorative Text Within HTML (ede )May 25, 2025 2156 attributes , css , formatting Making Scannable Web Pages for Assistive Technology (jar )May 23, 2025 2155 accessibility , assistive-tech , design , headings , semantics The “datalist” Element (kev )May 22, 2025 2154 forms Styling the Icon for HTML Date and Time Types (cas )May 21, 2025 2153 forms , css , time The “caption” Element (hey )May 20, 2025 2152 tables , semantics Expanding/Collapsing With “details” (ons /oze )May 17, 2025 2151 accessibility , disclosure-widgets Is There a Correct Answer? Flipping Layouts When Google Translate Swaps Between a Left-to-Right Language and a Right-to-Left Language (chr /fro )May 16, 2025 2150 internationalization , localization , conversion How Often Should We Speak About HTML Conformance? (j9t )May 14, 2025 2149 conformance , metrics Just Fucking Use HTML (kyr )May 12, 2025 2148 websites Enhancements to the Proposed “<permission>” Element (tom )May 12, 2025 2147 Foundations: Keyboard Accessibility (tet )May 9, 2025 2146 fundamentals , accessibility , keyboard-navigation , focus The True Path to Garbage Code: Figma Sites (joe )May 9, 2025 2145 figma , quality , semantics , accessibility The Hidden Gold of Web Accessibility: Everything About ARIA Labels (flo /a11 )May 6, 2025 2144 accessibility , aria , best-practices K.I.S.S. ARIA (nat )May 5, 2025 2143 aria , accessibility The “code” Element (hey )May 5, 2025 2142 markdown The “cite” Element (hey )Apr 30, 2025 2141 semantics Revisiting Image Maps (mal /css )Apr 30, 2025 2140 images , image-maps , techniques Seeking an Answer: Why Can’t HTML Alone Do Includes? (chr /fro )Apr 29, 2025 2139 maintainability The “canvas” Element (hey )Apr 28, 2025 2138 canvas , semantics Giving Software Away for Free (sim )Apr 28, 2025 2137 foss , hosting , javascript Menu and Navigation: The Difference (stv )Apr 28, 2025 2136 navigation , pagination , aria , accessibility Anchor Positioning Just Don’t Care About Source Order (geo /css )Apr 28, 2025 2135 css , anchor-positioning , source-order Unlocking Accessibility: Frontend Developers Discuss Semantic HTML and Accessible Code Apr 25, 2025 2134 accessibility , semantics , community “input type="color"” (kev )Apr 24, 2025 2133 forms , colors HTML Oddities: Does the Order of Attribute Values Matter? (ede )Apr 24, 2025 2132 attributes , css , selectors The Problem(s) With Image Accessibility Apr 23, 2025 2131 accessibility , images , alt-text Mastering HTML: The Art of Minimal and Valid Code in Professional Web Development (AI Edition) (j9t )Apr 23, 2025 2130 guest-posts , minimalism , conformance , semantics , interoperability , accessibility , standards Keeping It on the “<dl>”—Another HTML Gem You Never Use (cod )Apr 18, 2025 2129 lists , semantics Creating an Accessible Accordion With HTML Description Lists (kar )Apr 17, 2025 2128 accessibility , lists , accordions 5 Ways to Reduce HTML File Size on Your Website, Step 0 (j9t )Apr 16, 2025 2127 performance , optimization Default Styles for “h1” Elements Are Changing (zco /mdn )Apr 11, 2025 2126 css , headings , browsers 5 Ways to Reduce HTML File Size on Your Website (deb )Apr 10, 2025 2125 minification , compression , performance , optimization ARIA in HTML (sco +/w3c )Apr 9, 2025 2124 standards , accessibility , aria Milana Cap on the Interactivity and HTML APIs, and Their Enormous Potential (mil +)Apr 9, 2025 2123 podcasts , interviews , wordpress , apis , dom Strings Are a Leaky Abstraction for HTML (joe )Apr 8, 2025 2122 strings Tweaking Text Level Styles, Reprised (aar )Apr 5, 2025 2121 css , accessibility , support , browsers , screen-readers Hiding Elements That Require JavaScript Without JavaScript (0xd )Apr 5, 2025 2120 javascript , css CSS-Only Glitch Effect Apr 3, 2025 2119 css , effects Markup Languages (j9t )Mar 28, 2025 2118 overviews , link-lists , sgml , xml , xhtml , hdml , dhtml , mathml , wml , chtml “input type="number"” (kev )Mar 25, 2025 2117 forms “aria-label” Is a Letdown (thi /wag )Mar 24, 2025 2116 accessibility , aria , labels Create an HTML Dialog When You Click an Image (cas )Mar 21, 2025 2115 images , modals The “contenteditable” “plaintext-only” Attribute Value Combination Is Now Baseline Newly Available (tom )Mar 20, 2025 2114 attributes , browsers , support , web-platform Quick Accessibility Wins That Are Easy to Implement (kev )Mar 19, 2025 2113 videos , accessibility , semantics , alt-text , images , contrast , colors , keyboard-navigation , focus , skip-links The Bare Minimum You Need to Enable View Transitions on Your Website (ami )Mar 19, 2025 2112 css , view-transitions , minimalism A Review of HTML Linters Mar 17, 2025 2111 overviews , linting , conformance , tooling , link-lists , comparisons Is React Accessible? That’s the Wrong Question Mar 17, 2025 2110 accessibility , react , jsx , semantics Web Components vs. Framework Components: What’s the Difference? (sma )Mar 17, 2025 2109 web-components , components , frameworks , comparisons Popping Preconceived Popover Ponderings (sco )Mar 14, 2025 2108 accessibility , pop-overs Future of CSS: “select” Styling Without the Hacks Mar 10, 2025 2107 css , selectors , forms DeepSeek and HTML (j9t )Mar 7, 2025 2106 ai , deepseek , minimalism , conformance Introducing “command” and “commandfor” (kei )Mar 7, 2025 2105 introductions , attributes Implementing “aria-describedby” for Web Accessibility (flo /a11 )Mar 7, 2025 2104 accessibility , aria , forms , labels Page Speed: Avoid Large Base64 Data URLs in HTML and CSS (deb )Mar 7, 2025 2103 performance , css , data-urls , compression , base64 Creating Animated Accordions With the “details” Element and Modern CSS (ste /bui )Mar 7, 2025 2102 css , disclosure-widgets , accordions , animations , transitions Cool Native HTML Elements You Should Already Be Using (hrr )Mar 6, 2025 2101 modals , disclosure-widgets , forms , progress-indicators Grouping Selection List Items Together With CSS Grid (pre /css )Mar 5, 2025 2100 lists , forms , css , grids , layout Building Websites With LLMS (jim )Mar 4, 2025 2099 css , view-transitions Using and Styling the “details” Element (geo /css )Mar 4, 2025 2098 css , disclosure-widgets , examples The Professional Standing of Frontend Developers (mar )Mar 4, 2025 2097 guest-posts , career , learning , css , javascript , communication , collaboration , community , ai Unlock Exciting Use Cases With the Document Picture-in-Picture API (jad )Mar 4, 2025 2096 apis CSS Meets Voxel Art: Building a Rendering Engine With Stacked Grids (cod )Mar 3, 2025 2095 css , art There’s No Such Thing as “Menubar Navigation” (tem )Feb 28, 2025 2094 accessibility , navigation When to Use Lists for Better Accessibility Feb 27, 2025 2093 accessibility , lists Fixing “rowspan=0” on Tables on WebKit (kar )Feb 21, 2025 2092 tables , webkit , browser-engines , browsers Introduction to Frontend Development Feb 21, 2025 2091 introductions , css , javascript , frameworks , libraries , tooling , career , trends “ruby-align” Is Baseline Newly Available Feb 21, 2025 2090 ruby-markup , css , browsers , support , web-platform Everything You Need to Know About Invoker Commands (kei /web )Feb 21, 2025 2089 videos , pop-overs It’s Right There in the Back of the Book (hom )Feb 17, 2025 2088 accessibility , semantics Rethinking Find-in-Page Accessibility: Making Hidden Text Work for Everyone (sch )Feb 17, 2025 2087 accessibility , search , hiding , browsers Which HTML Element Are You? Feb 13, 2025 2086 quizzes Using the “step” and “pattern” Attributes to Make Number Inputs More Useful (cas /pic )Feb 13, 2025 2085 forms Testing 10 JavaScript Frameworks on Their HTML Defaults (j9t )Feb 12, 2025 2084 frameworks , javascript , conformance , comparisons , link-lists Optimizing Images for Web Performance (tod /fro )Feb 10, 2025 2083 images , performance , optimization , jpeg , png , webp , avif , caching Taking RWD to the Extreme (sma )Feb 7, 2025 2082 responsive-design , intrinsic-design , css How to Declare Your Page’s Language (pop )Feb 5, 2025 2081 how-tos , internationalization HTML and CSS for a One-Time Password Input (chr /fro )Feb 5, 2025 2080 css , forms , passwords Using Padding to Space an Input and Label (dar )Feb 4, 2025 2079 forms , labels , spacing , css A Content List With Bulk Actions Using Ancient HTML and Modern CSS (tyl /clo )Feb 4, 2025 2078 forms , lists , css Foundations: Grouping Forms With “<fieldset>” and “<legend>” (tet )Jan 31, 2025 2077 fundamentals , forms , aria How to Set Up an Accessible Page Structure and Navigation (pop )Jan 31, 2025 2076 how-tos , accessibility , navigation XHTML in Modern Web Development (mar )Jan 30, 2025 2075 guest-posts , xhtml What Text Area Popovers Taught Me About Browser APIs (bla )Jan 28, 2025 2074 forms , apis , javascript Only One “<details>” Open at a Time (osv )Jan 25, 2025 2073 disclosure-widgets Creating an Angled Slider (zac /fro )Jan 22, 2025 2072 sliders , css , effects Don’t Wrap Figure in a Link (aar )Jan 16, 2025 2071 links , screen-readers , accessibility 23 HTML Cheat Sheets, for a Different Look at HTML (dxs )Jan 16, 2025 2070 cheat-sheets , link-lists Learning HTML Is the Best Investment I Ever Did (cod )Jan 15, 2025 2069 learning , career HTML Developers: Please Consider—in the Year of 2025 (ste )Jan 11, 2025 2068 aria , accessibility Clean Up HTML Content for Retrieval-Augmented Generation With Readability.js (phi /dat )Jan 9, 2025 2067 scraping , tooling , nodejs , rag Lesser Known Uses of Better Known Attributes (sma )Jan 8, 2025 2066 attributes Sharing a Variable Across HTML, CSS, and JavaScript (chr /fro )Jan 8, 2025 2065 variables , css , javascript Accessibility Essentials Every Front-End Developer Should Know (mar )Jan 7, 2025 2064 accessibility , fundamentals , semantics , forms , keyboard-navigation , modals , alt-text , focus , responsive-design , reduced-motion , aria How to Order Attributes on HTML Elements Jan 6, 2025 2063 how-tos , attributes , sorting , conventions Brief Note on Figure and Figcaption Support (aar )Jan 6, 2025 2062 accessibility , screen-readers , support Use “translate” to Turn Off Element Translations (ste )Jan 6, 2025 2061 localization HTML Is Actually a Programming Language—Fight Me (tim /wir )Jan 6, 2025 2060 programming The Difference Between HTML Attributes and Properties (pau /clo )Jan 6, 2025 2059 attributes , javascript , terminology Relatively New Things You Should Know About HTML Heading Into 2025 (chr /fro )Jan 6, 2025 2058 forms , toggles , pop-overs , javascript , import-maps , css , transitions Updated Brief Note on Description List Support (aar )Jan 3, 2025 2057 lists , semantics , accessibility , screen-readers , support Media (ste +/htt )Dec 29, 2024 2056 web-almanac , studies , research , metrics , multimedia , images Datalists Are More Powerful Than You Think (two /mat )Dec 29, 2024 2055 Why Heading Order Matters in HTML (gra )Dec 27, 2024 2054 headings , accessibility Misleading Icons: Icon-Only-Buttons and Their Impact on Screen Readers (ale /mat )Dec 27, 2024 2053 buttons , icons , images , accessibility , screen-readers The Underrated “<dl>” Element (luh /mat )Dec 26, 2024 2052 lists Preloading Fonts for Web Performance With “link rel=preload” (acc /mat )Dec 25, 2024 2051 performance , preloading , fonts , hints The Search Input: They Almost Got It Right (stv /mat )Dec 24, 2024 2050 forms , labels , screen-readers , assistive-tech , accessibility The Devil Is in the “<details>” (mat )Dec 23, 2024 2049 disclosure-widgets PSA: Stop Using the “title” Attribute as Tooltip (dni /mat )Dec 22, 2024 2048 attributes , tooltips , toggles , accessibility Accessibility First: How to Design Inclusive Frontend Experiences Dec 22, 2024 2047 how-tos , design , accessibility , semantics , alt-text , keyboard-navigation , aria , contrast , forms , focus Please Keep Your HTML Tables Clean and Lean, if You Really Need to Use Them (cer )Dec 22, 2024 2046 accessibility , tables Grouping Form Fields (mat )Dec 21, 2024 2045 forms No ARIA Is Better Than Bad ARIA (kar )Dec 20, 2024 2044 videos , accessibility , aria My Favourite Colour Is Chuck Norris Red (val /mat )Dec 20, 2024 2043 colors Getting Oriented With HTML Video (sco /mat )Dec 19, 2024 2042 multimedia , web-components Microdata for Books (ala /mat )Dec 18, 2024 2041 microdata HTML Conformance: A Comparison of 6.5 npm Validator Packages (With 1.5 Recommendations) (j9t )Dec 17, 2024 2040 conformance , tooling , npm , comparisons You Don’t Need the “isOpen” Class (mau /mat )Dec 16, 2024 2039 aria , accessibility HTML “inert” Attribute (stv /5t3 )Dec 15, 2024 2038 attributes The Gift You Do Not Want: A Div in a Button’s Clothing (mat )Dec 15, 2024 2037 buttons , accessibility Page by Page: How Pagination Makes the Web Accessible (mat )Dec 14, 2024 2036 accessibility , pagination , css , svg ARIA in HTML (sco +/w3c )Dec 13, 2024 2035 standards , accessibility , aria Improving User Experience for Multilingual Web Browsing (mat )Dec 13, 2024 2034 user-experience , internationalization HTML and CSS I Didn’t Even Know About Before I Started Creating Content in Japanese (mat )Dec 12, 2024 2033 ruby-markup , css , internationalization Makeshift Hot Reload (eva /mat )Dec 11, 2024 2032 metadata Submit to the Quirks of HTML (fel /mat )Dec 10, 2024 2031 forms On-Page SEO Checklist: The Complete Task List for 2025 (sem )Dec 10, 2024 2030 seo , checklists , semantics Native HTML Light and Dark Color Scheme Switching (pep /mat )Dec 9, 2024 2029 dark-mode , css , javascript , functionality Past HTML, Future HTML? (j9t /mat )Dec 8, 2024 2028 Almost, but Not Quite, Entirely Unlike… (tin /mat )Dec 7, 2024 2027 accessibility , buttons , ai What Do the State of CSS and HTML Surveys Tell Us? Dec 6, 2024 2026 web-platform , css , community What Is HTML Optimization? What Is It Not? (j9t )Dec 5, 2024 2025 optimization , terminology Control the Viewport Resize Behavior on Mobile With “interactive-widget” (bra /mat )Dec 4, 2024 2024 css , units , viewport , resizing , mobile , metadata Creating an Effective Multistep Form for Better User Experience (sma )Dec 3, 2024 2023 forms , javascript , user-experience The HTML Native Search Element (tre )Dec 2, 2024 2022 semantics Starting Off Right: Where Autofocus Shines (kil /mat )Dec 2, 2024 2021 forms , focus Character-Based Alignment (css )Nov 29, 2024 2020 css , alignment Preloading Responsive Images (tre )Nov 28, 2024 2019 images , hints , performance , preloading A Button Is Not a Link (mor /mat )Nov 26, 2024 2018 buttons , links Language of Parts Bookmarklet (bea )Nov 25, 2024 2017 bookmarklets , metadata , accessibility Old Alt Text Advice (ste )Nov 23, 2024 2016 accessibility , images , alt-text , microcontent , best-practices Avoid Read-Only Controls (aar )Nov 21, 2024 2015 forms , accessibility Where Has All the Valid HTML Gone (j9t )Nov 21, 2024 2014 conformance , quality My 3 Most-Wanted CSS Table Features (dar )Nov 20, 2024 2013 css , tables , wish-lists Native Dual-Range Input Nov 18, 2024 2012 forms , css Importing a Frontend JavaScript Library Without a Build System (b0r )Nov 18, 2024 2011 javascript , libraries , commonjs , esm , nodejs State of HTML 2024 [Results] (sac /dev )Nov 14, 2024 2010 surveys , metrics The “br” Element (hey )Nov 12, 2024 2009 semantics Markup (gua /htt )Nov 11, 2024 2008 web-almanac , studies , research , metrics The Path to Learn Web Development (fla )Nov 8, 2024 2007 learning , http , css , tooling , git , javascript , typescript , databases , frameworks State of CSS and State of HTML 2024 (pat )Nov 8, 2024 2006 css The Lowdown on Dropdowns in HTML and CSS (dav /zer )Nov 7, 2024 2005 css How to Identify Decorative Images and Boost Accessibility (a11 )Nov 7, 2024 2004 how-tos , images , decoration , accessibility , aria More Options for Styling “<details>” (bra )Nov 6, 2024 2003 disclosure-widgets , css How Do HTML Event Handlers Work? (tbr )Nov 5, 2024 2002 javascript , events HTML Cheat Sheet Nov 4, 2024 2001 semantics , examples , cheat-sheets The “button” Element (hey )Nov 4, 2024 2000 semantics , buttons , links Disabled and Obscured (ste )Nov 4, 2024 1999 accessibility , forms , wcag , standards Building My Resume in HTML Using Eleventy (men )Nov 3, 2024 1998 career , eleventy 20 HTML Tips You Must Know in 2024 (xiu )Nov 2, 2024 1997 tips-and-tricks The “<details>” and “<summary>” Elements Are Getting an Upgrade (sea )Nov 1, 2024 1996 disclosure-widgets The “body” Element (hey )Oct 31, 2024 1995 semantics 25 Accessibility Tips to Celebrate 25 Years (jar /web )Oct 31, 2024 1994 accessibility , tips-and-tricks , aria Come to the “light-dark()” Side (sar /css )Oct 29, 2024 1993 dark-mode , css , colors Clarifying the Relationship Between Popovers and Dialogs (zel /css )Oct 29, 2024 1992 pop-overs , modals , comparisons , accessibility