Tech is political: The people under attack in Palestine 🇵🇸, Iran 🇮🇷, and Lebanon 🇱🇧 are people like us. They’re our brothers and sisters, too. Read up on their history, scrutinize what you’re told, and demand respect, accountability, and support. Hide

dxsrc

“html” News Archive

Definition, related topics, tag feed

Definition · Supertopics: standards, markup-languages · Subtopics: attributes, canvas, character-references, dhtml, disclosure-widgets, doctypes, dom, forms, frameworks, frames, hacks, headings, html-minifier, htmlnano, iframes, image-maps, lists, mathml, metadata, microdata, minify-html, minimize, nesting, presentational-html, ruby-markup, semantics, skip-links, source-order, svg, tables, web-components, web-forms, xhtml (non-exhaustive) · “html” × ? · “html” RSS feed (per email)

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