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 and accountability. Hide

Frontend Dogma

“html” News Archive

Definition, related topics, and 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, 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#
2026: 2 of the Global Top 200 Websites Use Valid HTML (j9t)2333
conformance, metrics, quality, craft
Antiquated HTML Snippets and Artefacts (val)2332
metadata, geolocation, conditional-comments, internet-explorer, browsers, amp, twitter+x
Support for “headers” Attribute (aar)2331
tables, attributes, accessibility, support, screen-readers, nvda, firefox, jaws, chrome, edge, voiceover, safari, talkback
You Don’t Need “initial-scale” in Your HTML (val)2330
metadata
“initial-scale” No Longer Needed (ppk)2329
metadata
New Things You Should Know About HTML Here in Mid 2026 (chr/fro)2328
web-components, canvas
What’s !important #18: “<geolocation>”, Syntax ::highlight()ing, “named-feature()”, and More (css)2327
css, retrospectives, web-platform, link-lists
What Is the Best Web Page Minifier in 2026? (apo)2326
minification, tooling, html-minifier, htmlnano, swc, metrics, comparisons
The 4 Hs of HTML (alv)2325
semantics
Enhanced Spell Checking on the Web (bka)2324
apis, javascript
My HTML Boilerplate in 2026 (mat)2323
templates
Exploring Compose HTML for Server Side Rendering (jet)2322
server-side-rendering
Delayed-Then-Instant Tooltips With HTML and CSS Alone (chr/fro)2321
tooltips, css
Understanding “aria-details” (rus)2320
attributes, aria, accessibility
Understanding “aria-roledescription” (rus)2319
attributes, aria, accessibility
HTML Over WebSockets: Real-Time SPAs With Barely Any JavaScript (and)2318
websockets, single-page-apps, link-lists
Building an Accordion the Browser Can Search2317
accordions, hiding, search, css, javascript
Why You Might Want to Build Your Web App in Canvas Instead of HTML2316
canvas, web-apps, comparisons
HTML Can Do That (chr)2315
examples
Using and Styling the Dialog Element (geo/css)2314
modals, css
Don’t Use a Class for That (alv)2313
attributes, selectors, css
CSS: The Bomb Inside Your Inbox (gaz/por)2312
css, csp, email, security
Something Nobody Told You About The Image Element (It Can Overflow) (css/fro)2311
images, overflow, css
A11y 101—3.3.4 Error Prevention (nat)2310
introductions, accessibility, wcag, errors, javascript
Fixing My Tooltip Accessibility Mistake (jaf)2309
accessibility, tooltips, aria, attributes, mistakes
The Difference Between a Button and a Link2308
buttons, links, comparisons
Robin Berjon—Fireside (rob+)2307
videos, interviews, w3c, web
Why I Built a Semantic HTML First Library (kar)2306
libraries, components, semantics
Use Cases for “aria-expanded” (stv/pic)2305
attributes, aria, accessibility, examples
Protecting HTML Content Against Copying (jsd)2304
css, javascript, canvas, obfuscation, techniques, comparisons
Recreating a 1990 Book Cover (in HTML and CSS) (blo)2303
css
HTML in Canvas: Render Real DOM Inside “<canvas>”2302
canvas, javascript
“focusgroup” Tests (aar)2301
attributes, focus, chrome, browsers, examples, accessibility
On the Semantic Web (kar)2300
semantics, buttons, forms
Clickable Table Rows Are a Bad Idea (tem)2299
tables, accessibility, keyboard-navigation
Modes and Themes That Stick—Building a Persistent Toggle Solution (stu)2298
toggles, forms, dark-mode, theming, flash-of-x
React’s Architectural Accessibility Gaps2297
react, accessibility, wcag
What’s !important #14: Gap Decorations, “random()”, “<select>” Field Sizing, and More (dxn/css)2296
css, retrospectives, web-platform, link-lists
Introducing the “<usermedia>” HTML Element2295
introductions, chrome, browsers
Building an Accessible Modal Dialog on the Native “<dialog>”2294
modals, accessibility, typescript
Animating the “dialog” Element Using View Transitions (rik)2293
modals, animations, view-transitions, javascript, css
I Stored a Website in a Favicon2292
favicons, images, experiments
The Siren Song of “ariaNotify()” (wil/css)2291
javascript, aria, notifications, attributes, jaws, nvda, voiceover, screen-readers, accessibility
The Golden Rule of Customizable “select” (sar/web)2290
forms, safari, browsers
Dark Mode With Web Standards (oll)2289
dark-mode, standards, javascript, svg, css
“headingoffset” Is Not the Document Outline Algorithm (aar)2288
attributes, headings
Semantica11y—Semantic HTML for Everyone (ste)2287
packages, semantics, accessibility
How Building an HTML-First Site Doubled Our Users Overnight (moh)2286
web-components, validation, traffic, case-studies
WWDC26: Rediscover the HTML “select” Element2285
videos, forms, css
WWDC26: Get Started With the HTML “model” Element2284
videos, introductions, animations
Streaming HTML (oll)2283
streaming, javascript
Another Stab at the Perfect CSS Pie Chart… Sans JavaScript (vil/css)2282
css
Astro: HTML First, JavaScript When You Need It (jad)2281
astro, javascript
Context-Aware Headings in HTML (mat)2280
headings, attributes
Gary Illyes: The Web’s JavaScript Mess Is an AI Agent Nightmare (ppc)2279
ai, ai-agents, javascript, rag, llmstxt
Re: Accessibility Question: Is Nesting Interactive Elements Bad? (aar)2278
accessibility, nesting
Accessible (I Think) Split-Cell Table Headers (mey)2277
css, tables
Managing Anchor Associations With Data Attributes and Advanced “attr()” (dxn/fro)2276
anchor-positioning, custom-data, css, functions, attributes
Lost, Forgotten, and Unfamiliar HTML (tho)2275
attributes
Not Every Form Field Needs to Be in a Fieldset (jea)2274
forms, design-systems, accessibility
What’s New in Web UI (una+)2273
videos, web-platform, user-experience, principles, canvas, css, google
Don’t Put “aria-label” on Generic Elements Like Divs (mat)2272
attributes, aria, screen-readers, support, accessibility
Accessible by Design: HTML, CSS, JavaScript, and ARIA Techniques That Scale2271
videos, accessibility, css, javascript, aria
Declarative Partial Updates (tun+)2270
apis, chrome, browsers
Introducing the HTML-in-Canvas API Origin Trial (nma)2269
introductions, canvas, apis, origin-trials, chrome, browsers
A Few Ways of Specifying Per-Theme Colours in Only CSS2268
css, dark-mode, colors, techniques
You Don’t Know HTML Lists2267
lists, semantics
hihtml (j9t)2266
packages, npm, conformance, links, link-rot, minification, html-minifier, optimization, quality
Install Web Apps With the New HTML “install” Element (pat)2265
web-apps, installing, origin-trials, chromium
Not All Hidden Content Is Equal: How Different Hiding Methods Impact Accessibility2264
accessibility, hiding, css, aria, attributes, techniques, comparisons
AI and HTML: Validating, Omitting Optional Code, and Minifying as Token Optimization (j9t)2263
ai, token-optimization, conformance, minimalism, minification, optimization
In-n-Out-Styling With Chris Coyier (chr/sma)2262
videos, css
The “<selectmenu>” Element: Stop Using JavaScript Dropdown Libraries2261
forms, javascript, css
Out With the JS, in With the HTML (jim)2260
javascript, refactoring
Using Claude Code: The Unreasonable Effectiveness of HTML2259
claude, ai, efficiency
HTML.md (j9t)2258
documentation, ai
What’s !important #10: HTML-in-Canvas, Hex Maps, E-Ink Optimization, and More (dxn/css)2257
css, retrospectives, web-platform, link-lists
ARIA Roles and Web Accessibility: A Quick Guide (lev)2256
guides, accessibility, aria, attributes
Hard to Read One-Liners (kri)2255
css, collaboration
The End of Responsive Images (wil/pic)2254
images, responsive-design
Visual Validation Feedback for Form Fields (aar)2253
forms, validation, javascript
The Web Is Fun Again: First Experiments With HTML in Canvas (ami/fro)2252
experiments, canvas, javascript
Multi-Level Navigation: The Challenge of Identifying Parent Sections for Screen Readers (ele)2251
navigation, aria, screen-readers, accessibility
A11y 101: 3.1.1 Language of Page (nat)2250
introductions, accessibility, wcag, localization
My Thoughts on the “focusgroup” Attribute Proposal (stv)2249
forms, focus, attributes
Video as Code: A Deep Dive Into HeyGen’s Hyperframes2248
deep-dives, multimedia, css, tooling
The Radio State Machine (ami/css)2247
css, state-management
The Community Has Spoken, Now We Need Browsers Vendors to Help: A “<rangegroup>” Update (uti)2246
community, browsers
Why AI Sucks at Front End (arg)2245
ai, css
How to Use Standard HTML Video and Audio Lazy-Loading on the Web Today (sco)2244
how-tos, multimedia, lazy-loading, performance
Old Advice: Hiding Content Has No Effect on Accessible Name or Description Calculation (ste)2243
accessibility, hiding, aria
Making Emojis and Icons Screen Reader Accessible (pop)2242
emoji, icons, images, accessibility, screen-readers
Semantic HTML Just Might Make Your CSS Less Fragile (sch)2241
css, semantics, resilience
There’s No Need to Include “Navigation” in Your Navigation Labels (tem)2240
accessibility, labels, navigation
Mike Smith Fireside (ste)2239
videos, interviews, standards, accessibility, community
Headings the Right Way: Site Building Tips for Accessible Page Content (dru)2238
videos, headings, accessibility
Bad Example: Timesheet Submit Button (rac)2237
buttons, accessibility
Tooltips That Work for Everyone (ele)2236
tooltips, accessibility, aria, attributes, screen-readers, nvda, jaws
Quick Tip: Don’t Use “<abbr>” (nat)2235
tips-and-tricks, screen-readers, support, accessibility
Astro: How to Set Up More Powerful HTML Minification (in 31 Seconds) (j9t)2234
how-tos, astro, html-minifier, minification, optimization
New Bookmarklet—Structure Revealer (llo)2233
bookmarklets, accessibility
Abusing Customizable Selects (pat/css)2232
forms, css, functions
The Enforced Accessibility of the “geolocation” Element (chr/fro)2231
geolocation, accessibility
Testing Browser Support for “focusgroup” (ada)2230
attributes, focus, javascript
The Different Ways to Select “<html>” in CSS (dxn/css)2229
css, selectors
You Don’t Know HTML Tables2228
tables, javascript
Request for Developer Feedback: “focusgroup” (jac)2227
attributes, focus, chromium, browsers
Your Skip Link Targets May Not Need “tabindex=-1” to Work Properly (mat)2226
skip-links, attributes, accessibility
1995: From Batman Forever’s Cinematic Design to HTML Tables (ric)2225
web, history, design, netscape, mosaic, browsers, tables, layout, wysiwyg, code-editors
Figcaptions Versus Alt Text (tem)2224
images, alt-text, accessibility, comparisons
You Can Use Newline Characters in URLs (lem)2223
urls, data-urls, links, attributes
“role=presentation” Is No Alternative for “aria-hidden=true” (mat)2222
accessibility, aria, attributes, comparisons
When Is a Link Not a Link? (dec)2221
links, semantics, accessibility
Matt May Speaks (mat+)2220
videos, interviews, accessibility, standards
“aria-haspopup” Might Not Do What You Think It Does (mat)2219
aria, attributes, navigation, accessibility
Standard HTML Video and Audio Lazy-Loading Is Coming (sco)2218
multimedia, lazy-loading, standards, performance
The Problem With HTML Reset Buttons (ada)2217
buttons, user-experience
Native HTML Components Don’t Guarantee Good UX (ada)2216
components, user-experience
An Official* Logo for HTML (zac)2215
Everything You Never Wanted to Know About “visually-hidden” (dbu)2214
css, hiding, accessibility
Notes on Relying on the ARIA Authoring Practices Guide (ste)2213
aria, accessibility
Mastering Dialog Accessibility2212
accessibility, modals, aria
You Might Not Need “role="presentation"” (stv/pic)2211
aria, accessibility
Virtual Scrolling for Billions of Rows—Techniques From HighTable (sev)2210
tables, scrolling, performance, react
You Know What? Just Don’t Split Words Into Letters (aar)2209
accessibility, screen-readers, support
Trying to Make the Perfect Pie Chart in CSS (mon/css)2208
css
How to Improve Your HTML Game (j9t)2207
how-tos, conformance, learning, career
Introduction to the New HTML Element “<geolocation>” (mat)2206
introductions, geolocation
Accessible Inline Collapsible (eri)2205
accessibility, disclosure-widgets
Repeatable Form Fields Made Simple (aar)2204
forms, web-components
More Invoker Commands, and More Reasons Not to Use JavaScript Please (paw)2203
examples
SPAs Are a Performance Dead End (yeg)2202
single-page-apps, performance
Barriers From Links With ARIA (aar)2201
accessibility, links, aria
I Learned the First Rule of ARIA the Hard Way (css)2200
accessibility, aria, semantics
Faking a Fieldset-Legend (tyl/clo)2199
forms, css
SEO (htt)2198
web-almanac, studies, research, metrics, seo, robotstxt, llmstxt, links, content, structured-data, amp, internationalization
Accessible Faux-Nested Interactive Controls (eri/pic)2197
accessibility, conformance, nesting
The Incredible Overcomplexity of the Shadcn Radio Button (pau)2196
forms, shadcn, complexity
EPUB and HTML—Survey Results and Next Steps (rei/w3c)2195
surveys, epub
So You Think Your Website Is Doing Great (cit)2194
javascript, css, quality
ARIA Roles Can Remove Their Children’s Semantics (ste)2193
aria, semantics, accessibility
Introducing the “<geolocation>” HTML Element (tom+)2192
introductions, geolocation, chrome, browsers
A Polyfill for the HTML “switch” Element (tom)2191
forms, polyfills
What Is the Minimum Markup Needed to Create a Modal? (rus)2190
modals, minimalism, css, accessibility
Very Good Components (bee)2189
websites, components
How Browsers Work (dmy)2188
websites, guides, browsers, urls, http, tcp, dom
How Can You Tell What’s Allowed Inside Each HTML Element? (rus)2187
conformance
HTML Content Categories (rus)2186
semantics
The Final Nail in the HTML5 Document Outline Coffin (tem)2185
headings, accessibility
Opening and Closing Dialogs Without JavaScript Using HTML Invoker Commands (sch)2184
modals
Revisiting HTML Streaming for Modern Web Performance (per)2183
performance, streaming
The Three Semantics of HTML (mat)2182
semantics
For the Love of “<details>” (dev/mat)2181
disclosure-widgets
The HTML Elements Time Forgot (val/mat)2180
history
2026 Predictions: The Next Big Shifts in Web Accessibility (web)2179
accessibility, outlooks, ai, wcag
The Two Most Important Tools for HTML Developers2178
tooling, conformance, minification, html-minifier, htmlnano, swc
Why “role="button"” on a “<button>” Does Nothing (rus)2177
buttons, attributes, aria
Styling by Language: Using the “lang” Attribute for Multilingual Design (mat)2176
internationalization, css
Did You Know Some ARIA Roles Remove Child Semantics? (rus)2175
aria, semantics, accessibility
The Many Lives of the Page Title (kat/mat)2174
user-experience, accessibility, wcag
Semantics Beyond the Tag Name (kno/mat)2173
attributes, aria, semantics, accessibility
Targeting by Reference in the Shadow DOM (mey)2172
shadow-dom, javascript
The Anatomy of an Accessible Text Field (ink)2171
forms, accessibility, labels
Accessibility Is Personal (css)2170
accessibility
Forms Are a Badly Designed Part of HTML (jen/mat)2169
forms, standards
Don’t Leave the Screen Reader Hungry (ger/mat)2168
emoji, screen-readers, accessibility
How “aria-labelledby” Really Works (rus)2167
accessibility, aria, attributes
State of HTML 2025 [Results] (sac/dev)2166
surveys, metrics
Giving Pages a Clear Shape by Using Headings (mat)2165
headings
Does Chrome Get the “<header>” Element Wrong? (rus)2164
aria, chrome, browsers
I Ported JustHTML From Python to JavaScript With Codex CLI and GPT-5.2 in 4.5 Hours (sim)2163
migrating, ai, python, javascript, tooling, parsing
Them’s the Breaks (tyl/mat)2162
The “<time>” Element Should Actually Do Something (nol)2161
time, semantics
Hell Is Other People’s Markup (llo/mat)2160
auditing, tooling
Changes in the World of HTML Minifiers (apo)2159
tooling, minification, html-minifier
Why We Teach Our Students Progressive Enhancement (cyd)2158
progressive-enhancement, css, javascript, training
How HTML Changes in EPUB (rob/mat)2157
epub, standards
A11y Freedom Beaver (ste/mat)2156
accessibility, aria
Useful Patterns for Building HTML Tools (sim)2155
ai, tooling
Discover Dialog (sar/mat)2154
modals, javascript, css
That Time I Tried Explaining HTML and CSS to My 5-Year Old Niece (css)2153
css, learning
What’s Wrong With This HTML, and Is It Valid? (pat/mat)2152
standards, conformance, web-platform
Comparing HTML Minifiers (j9t)2151
minification, tooling, html-minifier, htmlnano, metrics, comparisons
Controlling Dialogs and Popovers With the Invoker Commands API (sta/mat)2150
modals, pop-overs, apis, attributes
Accessible by Design: The Role of the “lang” Attribute (col/mat)2149
accessibility, internationalization, attributes, metrics
NoLoJS: Reducing the JS Workload With HTML and CSS (aar/per)2148
disclosure-widgets, forms, modals, pop-overs, navigation, scrolling, positioning
IDREFs: What They Are and How to Use Them (kil/mat)2147
forms, aria, accessibility
Referencing HTML Elements Inside Shadow DOM (meh/mat)2146
shadow-dom, web-components
HTML Semantics: The Short Descriptions of All 113 Elements (j9t)2145
semantics, overviews
Using the Ancient Evils for Debugging (bol/mat)2144
debugging
Exploring Large HTML Documents on the Web (per)2143
performance, metrics
How Modern Browsers Work (add)2142
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)2141
how-tos, eleventy, html-minifier, minification, optimization
What Are Invokers? Interactivity Without JavaScript (tol/syn)2140
videos, javascript, pop-overs
Testing Methods: Page Titled (dec)2139
accessibility, wcag, testing
A Complete Guide to the HTML Number Input (oll)2138
guides, attributes, forms
“::details-content”: Style Expandable Content Without Wrapper Divs (tre)2137
disclosure-widgets, css
Why Headings Are Important in HTML: Structure, Accessibility, and SEO2136
headings, accessibility, seo
Headings: Semantics, Fluidity, and Styling—Oh My! (geo/css)2135
headings, css
Link vs. Button: Choosing the Right Element for the Right Job (tpg)2134
links, buttons, accessibility, wcag, comparisons
Tailwind CSS Won the War… but We’re the Losers2133
tailwind, css, web-platform
Explaining the Accessible Benefits of Using Semantic HTML Elements (geo/css)2132
semantics, accessibility
Now Available: “On Web Development II”! (j9t)2131
books, css, engineering-management, maintainability, quality
Just Use a Button (cfe)2130
buttons, semantics
HTML Minifier: A 12-Year Journey Building and Maintaining an Open Source Tool2129
minification, tooling, windows, asp-net, retrospectives
Parenthetical Asidenotes (mey)2128
css
ChatGPT Sez Build With Semantics First (ste)2127
chatgpt, chatgpt-atlas, ai, browsers, semantics, accessibility
Don’t Forget These Tags to Make HTML Work Like You Expect (jim)2126
What’s an Interactive Element? (mat)2125
focus, concepts
Challenging the Idea of “Optional HTML” (mar)2124
guest-posts, minimalism
Links and Anchors: Ancient HTML and JS Magic in Your Browser (cod/wea)2123
css, javascript, links
What State ARIA In? (tpg)2122
aria, accessibility
Implicit Labels Aren’t (cfe)2121
forms, labels
Headers, Headings, and Titles (tem)2120
headings, comparisons, terminology
Page Headings Don’t Belong in the Header (tem)2119
headings, skip-links, accessibility
A Look Into Customizable HTML “select” Elements2118
forms, css
Tables: Beyond Rows and Columns (tpg)2117
accessibility, wcag, tables, semantics, jaws, nvda, screen-readers
HTML “dialog”: Getting Accessibility and UX Right (jar)2116
modals, scrolling, accessibility, user-experience
HTML—the Most Difficult Programming Language in the World (j9t)2115
programming, conformance, professionalism
Numbers That Fall (Scroll-Driven Animations and Sibling Index) (chr/fro)2114
css, animations, scrolling, effects
When to Use Modal vs. Dialog Components (a11)2113
modals, aria, accessibility
Lowriders and Websites (aaa)2112
css, craft
Rethinking Cookie Dialogs (nat)2111
accessibility, disclosure-widgets, cookies, consent-management
A Progressive Enhancement Challenge (chr/fro)2110
progressive-enhancement, javascript, feature-detection, support
How to Optimize Viewport for Mobile for Faster Interactions (deb)2109
how-tos, viewport, mobile, performance, optimization
Understanding the Removal of 4.1.1 Parsing in WCAG 2.2 (tpg)2108
accessibility, wcag, conformance
HTML’s Best Kept Secret: The “<output>” Tag (den)2107
Let’s Play Accordion With the HTML “details” Element (ale)2106
disclosure-widgets, accordions
Creating a Truly Accessible Flip Card (sib/tpg)2105
css, javascript, accessibility
Web Development for Beginners: Creating Web Pages via HTML (rau)2104
fundamentals, urls, servers, forms
The “picture” Element (kev)2103
A Quick Primer on Accessible Pagination (kar)2102
introductions, accessibility, pagination, css, assistive-tech
“aria-label” or “title”? Screen Reader Behaviour Explained (a11)2101
attributes, accessibility, screen-readers
Navigating the World of Web Accessibility With Sara Soueidan (sar+)2100
videos, interviews, accessibility, wcag, aria, css
2025: 0 of the Global Top 200 Websites Use Valid HTML (j9t)2099
conformance, metrics, quality, craft
Just Use HTML (cfe)2098
javascript
Baby Steps Accessibility—Page Titles (dec)2097
microcontent, best-practices, accessibility
Why Moving Away From SPAs Improves Usability, Accessibility, and SEO (inn)2096
single-page-apps, usability, accessibility, seo, semantics
Screen Reader HTML Support—Lookup (ste)2095
screen-readers, accessibility, support, overviews
Your Images Are (Probably) Oversized2094
images, pixel-density
Why Did I Ever Abandon HTML/CSS? (syl)2093
css
Tricks to Write HTML and CSS 10× Faster (jay)2092
css, efficiency, tips-and-tricks
You No Longer Need JavaScript (reb)2091
javascript, css, examples
Opening a “details” Element From the URL (chr/fro)2090
disclosure-widgets, urls
Hack to the Future—Frontend (the)2089
history, css, javascript, design, layout, flash, image-replacement, libraries, frameworks, hacks, xhtml, tooling, testing, outlooks
How to Create an Accessible Table With Clickable Rows (ale)2088
how-tos, tables, accessibility
Design Hacks From the Pre-CSS Era (den/hac)2087
tables, layout, hacks, history
A Proposal for Inline LLM Instructions in HTML Based on llms.txt (ind)2086
ai, llmstxt
The First Rule of ARIA (nat)2085
accessibility, aria, principles
Covering “hidden=until-found” (geo/css)2084
hiding
5 Heading Accessibility Issues to Avoid (pop)2083
accessibility, headings
A Progressive Complexity Manifesto (che)2082
manifestos, complexity, web-apps, htmx, javascript, web-components, frameworks, principles
HTML Popovers Shown on Interest Should Be Accessible on Mobile Devices (uti)2081
pop-overs, mobile, usability
HTML Is Dead, Long Live HTML (unc)2080
css, dom, standards, metrics
When HTML Speaks Clearly2079
accessibility, conformance, semantics
A Few Things About the Anchor Element’s “href” You Might Not Have Known (jim)2078
attributes, links, data-urls
More Than Just Text: The Real Power of Labels (tpg)2077
accessibility, labels, forms
HTML-First, Framework-Second: Is JavaScript Finally Growing Up?2076
javascript, frameworks
Web Components: Working With Shadow DOM (sma)2075
web-components, shadow-dom, dom
The “figcaption” Problem (chr/fro)2074
css
Why and How to Write Minimal and Valid HTML, a Link Guide (j9t)2073
minimalism, conformance, how-tos, guides, link-lists
State of HTML 2025 Now Open (lea)2072
surveys
How Semantics and ARIA Attributes Support Accessible Design (tpg)2071
accessibility, semantics, aria, attributes
Super Short Note: Placeholder Perfidy (ste)2070
accessibility, placeholders
Why Semantic HTML Still Matters (jon)2069
semantics
A Label and a Name Walk Into a Bar (ste)2068
accessibility, labels, concepts, examples
Why I’m Writing Pure HTML and CSS in 20252067
css
Screen Reader HTML Support Tables (ste/tet)2066
support, screen-readers, jaws, nvda, accessibility
HTML Minifier Next (a Maintained Fork of HTML Minifier) (j9t)2065
html-minifier, minification, optimization, tooling
HTML Day 2025 (htm)2064
awareness-days
What Is “popover=hint”? (una)2063
attributes, pop-overs
Shadow DOM: The Ultimate Solution for Embedding Third-Party HTML Without CSS Conflicts2062
shadow-dom, dom, css
Custom Select (That Comes Up From the Bottom on Mobile) (chr/fro)2061
forms, css, animations, progressive-enhancement, mobile
Tabindex: What It Is, How It Works, and When to Use It (pop)2060
focus, keyboard-navigation, accessibility
Google: Many Top Sites Have Invalid HTML and Still Rank (mat/sea)2059
google, conformance, quality, seo
A Step Into the Spatial Web: The HTML Model Element in Apple Vision Pro (zac/web)2058
spatial-web, apple, xr
The Mythical Magical Button (cri)2057
buttons, css, custom-properties, custom-data
Know Your HTML (Yes, TSX Included) (hel)2056
semantics, accessibility
CSS Cascade Layers vs. BEM vs. Utility Classes: Specificity Control (sma)2055
css, cascade, bem, presentational-html
Selfish Reasons for Building Accessible Uis (nol)2054
accessibility, debugging, testing
What I Wish Someone Told Me When I Was Getting Into ARIA (eri/sma)2053
accessibility, aria, assistive-tech, support
Having “figure” Match Width of Contained Image (jef)2052
css, images
Why Visual Website Builders Didn’t Take Off (whi)2051
videos, code-editors, wysiwyg, history
HTML Spec Change: Escaping “<” and “>” in Attributes (sec)2050
attributes, escaping, security, xss
Escaping “<” and “>” in Attributes—How It Helps Protect Against Mutation XSS (sec)2049
attributes, security, xss, escaping, chrome, browsers
Is HTML Not a Programming Language?2048
programming
Creating an Auto-Closing Notification With an HTML Popover (pre/css)2047
notifications, pop-overs
ARIA/HTML Relationship Severance (ste)2046
accessibility, aria
The “<output>” Element (kev)2045
“aria-selected”: Practical Examples and Use Cases (flo/a11)2044
accessibility, aria, examples
HTML-Native Accordions (cfe)2043
accordions
How to Use ARIA Roles and Properties Effectively2042
how-tos, aria, accessibility
Getting Creative With HTML Dialog (mal/css)2041
modals
HTML Only Experiments (ala)2040
websites, experiments
Up and Coming ARIA (web)2039
accessibility, aria
The “col” Element (hey)2038
tables, semantics
The Magic of the Most Minimal HTML Possible (and Why We Don’t Make Use of It) (j9t)2037
minimalism, maintainability
What I Learnt About Making Websites by Reading Two Thousand Web Pages (ale)2036
css, conditional-comments, lessons
Decorative Text Within HTML (ede)2035
attributes, css, formatting
Making Scannable Web Pages for Assistive Technology (jar)2034
accessibility, assistive-tech, design, headings, semantics
The “datalist” Element (kev)2033
forms
Styling the Icon for HTML Date and Time Types (cas)2032
forms, css, time
The “caption” Element (hey)2031
tables, semantics
Expanding/Collapsing With “details” (ons/oze)2030
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)2029
internationalization, localization, conversion
How Often Should We Speak About HTML Conformance? (j9t)2028
conformance, metrics
Just Fucking Use HTML (kyr)2027
websites
Enhancements to the Proposed “<permission>” Element (tom)2026
Foundations: Keyboard Accessibility (tet)2025
fundamentals, accessibility, keyboard-navigation, focus
The True Path to Garbage Code: Figma Sites (joe)2024
figma, quality, semantics, accessibility
The Hidden Gold of Web Accessibility: Everything About ARIA Labels (flo/a11)2023
accessibility, aria, best-practices
K.I.S.S. ARIA (nat)2022
aria, accessibility
The “code” Element (hey)2021
markdown
Revisiting Image Maps (mal/css)2020
images, image-maps, techniques
The “cite” Element (hey)2019
semantics
Seeking an Answer: Why Can’t HTML Alone Do Includes? (chr/fro)2018
maintainability
Anchor Positioning Just Don’t Care About Source Order (geo/css)2017
css, anchor-positioning, source-order
Giving Software Away for Free (sim)2016
foss, hosting, javascript
Menu and Navigation: The Difference (stv)2015
navigation, pagination, aria, accessibility
The “canvas” Element (hey)2014
canvas, semantics
Unlocking Accessibility: Frontend Developers Discuss Semantic HTML and Accessible Code2013
accessibility, semantics, community
HTML Oddities: Does the Order of Attribute Values Matter? (ede)2012
attributes, css, selectors
“input type="color"” (kev)2011
forms, colors
The Problem(s) With Image Accessibility2010
accessibility, images, alt-text
Mastering HTML: The Art of Minimal and Valid Code in Professional Web Development (AI Edition) (j9t)2009
guest-posts, minimalism, conformance, semantics, interoperability, accessibility, standards
Keeping It on the “<dl>”—Another HTML Gem You Never Use (cod)2008
lists, semantics
Creating an Accessible Accordion With HTML Description Lists (kar)2007
accessibility, lists, accordions
5 Ways to Reduce HTML File Size on Your Website, Step 0 (j9t)2006
performance, optimization
Default Styles for “h1” Elements Are Changing (zco/mdn)2005
css, headings, browsers
5 Ways to Reduce HTML File Size on Your Website (deb)2004
minification, compression, performance, optimization
ARIA in HTML (sco+/w3c)2003
standards, accessibility, aria
Milana Cap on the Interactivity and HTML APIs, and Their Enormous Potential (mil+)2002
podcasts, interviews, wordpress, apis, dom
Strings Are a Leaky Abstraction for HTML (joe)2001
strings
Hiding Elements That Require JavaScript Without JavaScript (0xd)2000
javascript, css
Tweaking Text Level Styles, Reprised (aar)1999
css, accessibility, support, browsers, screen-readers
CSS-Only Glitch Effect1998
css, effects
Markup Languages (j9t)1997
overviews, link-lists, sgml, xml, xhtml, hdml, dhtml, mathml, wml, chtml
“input type="number"” (kev)1996
forms
“aria-label” Is a Letdown (thi/wag)1995
accessibility, aria, labels
Create an HTML Dialog When You Click an Image (cas)1994
images, modals
The “contenteditable” “plaintext-only” Attribute Value Combination Is Now Baseline Newly Available (tom)1993
attributes, browsers, support, web-platform
Quick Accessibility Wins That Are Easy to Implement (kev)1992
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)1991
css, view-transitions, minimalism
Web Components vs. Framework Components: What’s the Difference? (sma)1990
web-components, components, frameworks, comparisons
A Review of HTML Linters1989
overviews, linting, conformance, tooling, link-lists, comparisons
Is React Accessible? That’s the Wrong Question1988
accessibility, react, jsx, semantics
Popping Preconceived Popover Ponderings (sco)1987
accessibility, pop-overs
Future of CSS: “select” Styling Without the Hacks1986
css, selectors, forms
Creating Animated Accordions With the “details” Element and Modern CSS (ste/bui)1985
css, disclosure-widgets, accordions, animations, transitions
Implementing “aria-describedby” for Web Accessibility (flo/a11)1984
accessibility, aria, forms, labels
Page Speed: Avoid Large Base64 Data URLs in HTML and CSS (deb)1983
performance, css, data-urls, compression, base64
Introducing “command” and “commandfor” (kei)1982
introductions, attributes
DeepSeek and HTML (j9t)1981
ai, deepseek, minimalism, conformance
Cool Native HTML Elements You Should Already Be Using (hrr)1980
modals, disclosure-widgets, forms, progress-indicators
Grouping Selection List Items Together With CSS Grid (pre/css)1979
lists, forms, css, grids, layout
Building Websites With LLMS (jim)1978
css, view-transitions
Using and Styling the “details” Element (geo/css)1977
css, disclosure-widgets, examples
The Professional Standing of Frontend Developers (mar)1976
guest-posts, career, learning, css, javascript, communication, collaboration, community, ai
Unlock Exciting Use Cases With the Document Picture-in-Picture API (jad)1975
apis
CSS Meets Voxel Art: Building a Rendering Engine With Stacked Grids (cod)1974
css, art
There’s No Such Thing as “Menubar Navigation” (tem)1973
accessibility, navigation
When to Use Lists for Better Accessibility1972
accessibility, lists
Fixing “rowspan=0” on Tables on WebKit (kar)1971
tables, webkit, browser-engines, browsers
“ruby-align” Is Baseline Newly Available1970
ruby-markup, css, browsers, support, web-platform
Everything You Need to Know About Invoker Commands (kei/web)1969
videos, pop-overs
Introduction to Frontend Development1968
introductions, css, javascript, frameworks, libraries, tooling, career, trends
Rethinking Find-in-Page Accessibility: Making Hidden Text Work for Everyone (sch)1967
accessibility, search, hiding, browsers
It’s Right There in the Back of the Book (hom)1966
accessibility, semantics
Using the “step” and “pattern” Attributes to Make Number Inputs More Useful (cas/pic)1965
forms
Which HTML Element Are You?1964
quizzes
Testing 10 JavaScript Frameworks on Their HTML Defaults (j9t)1963
frameworks, javascript, conformance, comparisons, link-lists
Optimizing Images for Web Performance (tod/fro)1962
images, performance, optimization, jpeg, png, webp, avif, caching
Taking RWD to the Extreme (sma)1961
responsive-design, intrinsic-design, css
How to Declare Your Page’s Language (pop)1960
how-tos, internationalization
HTML and CSS for a One-Time Password Input (chr/fro)1959
css, forms, passwords
A Content List With Bulk Actions Using Ancient HTML and Modern CSS (tyl/clo)1958
forms, lists, css
Using Padding to Space an Input and Label (dar)1957
forms, labels, spacing, css
Foundations: Grouping Forms With “<fieldset>” and “<legend>” (tet)1956
fundamentals, forms, aria
How to Set Up an Accessible Page Structure and Navigation (pop)1955
how-tos, accessibility, navigation
XHTML in Modern Web Development (mar)1954
guest-posts, xhtml
What Text Area Popovers Taught Me About Browser APIs (bla)1953
forms, apis, javascript
Only One “<details>” Open at a Time (osv)1952
disclosure-widgets
Creating an Angled Slider (zac/fro)1951
sliders, css, effects
Don’t Wrap Figure in a Link (aar)1950
links, screen-readers, accessibility
23 HTML Cheat Sheets, for a Different Look at HTML (fro)1949
cheat-sheets, link-lists
Learning HTML Is the Best Investment I Ever Did (cod)1948
learning, career
HTML Developers: Please Consider—in the Year of 2025 (ste)1947
aria, accessibility
Clean Up HTML Content for Retrieval-Augmented Generation With Readability.js (phi/dat)1946
scraping, tooling, nodejs, rag
Lesser Known Uses of Better Known Attributes (sma)1945
attributes
Sharing a Variable Across HTML, CSS, and JavaScript (chr/fro)1944
variables, css, javascript
Accessibility Essentials Every Front-End Developer Should Know (mar)1943
accessibility, fundamentals, semantics, forms, keyboard-navigation, modals, alt-text, focus, responsive-design, reduced-motion, aria
Brief Note on Figure and Figcaption Support (aar)1942
accessibility, screen-readers, support
How to Order Attributes on HTML Elements1941
how-tos, attributes, sorting, conventions
Relatively New Things You Should Know About HTML Heading Into 2025 (chr/fro)1940
forms, toggles, pop-overs, javascript, import-maps, css, transitions
The Difference Between HTML Attributes and Properties (pau/clo)1939
attributes, javascript, terminology
Use “translate” to Turn Off Element Translations (ste)1938
localization
HTML Is Actually a Programming Language—Fight Me (tim/wir)1937
programming
Updated Brief Note on Description List Support (aar)1936
lists, semantics, accessibility, screen-readers, support
Datalists Are More Powerful Than You Think (two/mat)1935
Media (ste+/htt)1934
web-almanac, studies, research, metrics, multimedia, images
Misleading Icons: Icon-Only-Buttons and Their Impact on Screen Readers (ale/mat)1933
buttons, icons, images, accessibility, screen-readers
Why Heading Order Matters in HTML (gra)1932
headings, accessibility
The Underrated “<dl>” Element (luh/mat)1931
lists
Preloading Fonts for Web Performance With “link rel=preload” (acc/mat)1930
performance, preloading, fonts, hints
The Search Input: They Almost Got It Right (stv/mat)1929
forms, labels, screen-readers, assistive-tech, accessibility
The Devil Is in the “<details>” (mat)1928
disclosure-widgets
Please Keep Your HTML Tables Clean and Lean, if You Really Need to Use Them (cer)1927
accessibility, tables
PSA: Stop Using the “title” Attribute as Tooltip (dni/mat)1926
attributes, tooltips, toggles, accessibility
Accessibility First: How to Design Inclusive Frontend Experiences1925
how-tos, design, accessibility, semantics, alt-text, keyboard-navigation, aria, contrast, forms, focus
Grouping Form Fields (mat)1924
forms
My Favourite Colour Is Chuck Norris Red (val/mat)1923
colors
No ARIA Is Better Than Bad ARIA (kar)1922
videos, accessibility, aria
Getting Oriented With HTML Video (sco/mat)1921
multimedia, web-components
Microdata for Books (ala/mat)1920
microdata
HTML Conformance: A Comparison of 6.5 npm Validator Packages (With 1.5 Recommendations) (j9t)1919
conformance, tooling, npm, comparisons
You Don’t Need the “isOpen” Class (mau/mat)1918
aria, accessibility
HTML “inert” Attribute (stv/5t3)1917
attributes
The Gift You Do Not Want: A Div in a Button’s Clothing (mat)1916
buttons, accessibility
Page by Page: How Pagination Makes the Web Accessible (mat)1915
accessibility, pagination, css, svg
ARIA in HTML (sco+/w3c)1914
standards, accessibility, aria
Improving User Experience for Multilingual Web Browsing (mat)1913
user-experience, internationalization
HTML and CSS I Didn’t Even Know About Before I Started Creating Content in Japanese (mat)1912
ruby-markup, css, internationalization
Makeshift Hot Reload (eva/mat)1911
metadata
On-Page SEO Checklist: The Complete Task List for 2025 (sem)1910
seo, checklists, semantics
Submit to the Quirks of HTML (fel/mat)1909
forms
Native HTML Light and Dark Color Scheme Switching (pep/mat)1908
dark-mode, css, javascript, functionality
Past HTML, Future HTML? (j9t/mat)1907
Almost, but Not Quite, Entirely Unlike… (tin/mat)1906
accessibility, buttons, ai
What Do the State of CSS and HTML Surveys Tell Us? (rac)1905
web-platform, css, community
What Is HTML Optimization? What Is It Not? (j9t)1904
optimization, terminology
Control the Viewport Resize Behavior on Mobile With “interactive-widget” (bra/mat)1903
css, units, viewport, resizing, mobile, metadata
Creating an Effective Multistep Form for Better User Experience (sma)1902
forms, javascript, user-experience
Starting Off Right: Where Autofocus Shines (kil/mat)1901
forms, focus
The HTML Native Search Element (tre)1900
semantics
Character-Based Alignment (css)1899
css, alignment
Preloading Responsive Images (tre)1898
images, hints, performance, preloading
A Button Is Not a Link (mor/mat)1897
buttons, links
Language of Parts Bookmarklet (bea)1896
bookmarklets, metadata, accessibility
Old Alt Text Advice (ste)1895
accessibility, images, alt-text, microcontent, best-practices
Avoid Read-Only Controls (aar)1894
forms, accessibility
Where Has All the Valid HTML Gone (j9t)1893
conformance, quality
My 3 Most-Wanted CSS Table Features (dar)1892
css, tables, wish-lists
Importing a Frontend JavaScript Library Without a Build System (b0r)1891
javascript, libraries, commonjs, esm, nodejs
Native Dual-Range Input1890
forms, css
State of HTML 2024 [Results] (sac/dev)1889
surveys, metrics
The “br” Element (hey)1888
semantics
Markup (gua/htt)1887
web-almanac, studies, research, metrics
State of CSS and State of HTML 2024 (pat)1886
css
The Path to Learn Web Development (fla)1885
learning, http, css, tooling, git, javascript, typescript, databases, frameworks
How to Identify Decorative Images and Boost Accessibility (a11)1884
how-tos, images, decoration, accessibility, aria
The Lowdown on Dropdowns in HTML and CSS (zer)1883
css
More Options for Styling “<details>” (bra)1882
disclosure-widgets, css
How Do HTML Event Handlers Work? (tbr)1881
javascript, events
Disabled and Obscured (ste)1880
accessibility, forms, wcag, standards
The “button” Element (hey)1879
semantics, buttons, links
HTML Cheat Sheet1878
semantics, examples, cheat-sheets
Building My Resume in HTML Using Eleventy (men)1877
career, eleventy
20 HTML Tips You Must Know in 2024 (xiu)1876
tips-and-tricks
The “<details>” and “<summary>” Elements Are Getting an Upgrade (sea)1875
disclosure-widgets
25 Accessibility Tips to Celebrate 25 Years (jar/web)1874
accessibility, tips-and-tricks, aria
The “body” Element (hey)1873
semantics
Clarifying the Relationship Between Popovers and Dialogs (zel/css)1872
pop-overs, modals, comparisons, accessibility
Come to the “light-dark()” Side (sar/css)1871
dark-mode, css, colors
HTML Form Validation Is Heavily Underused1870
forms, validation, react
Talkin’ Tables (aar/web)1869
videos, accessibility, tables
Why Does “target="_blank"” Have an Underscore in Front? (kyr)1868
frames, links
My Top 5 Most Popular Front-End Tips (kev)1867
videos, css, forms, tips-and-tricks
How Should “<selectedoption>” Work? (jaf)1866
forms
An HTML Email Template With Basic Typography and Dark/light Modes (chr/fro)1865
templates, email, typography, dark-mode
Using Static Websites for Tiny Archives1864
css
I’ve Been Doing Blockquotes Wrong (mic)1863
The “blockquote” Element (hey)1862
semantics
My Eulogy for the Open Web and Old Google1861
open-web, google
HTML/CSS Frameworks, in Their Own Words (by Word Cloud) (j9t)1860
frameworks, css, bootstrap, tailwind, foundation, bulma, milligram, pure, uikit, comparisons
HTML for People (bw)1859
books, websites, examples
The New Stylable “<select>” Element (jaf+)1858
podcasts, css, apis, forms
No Industry for Old Men (ste/web)1857
videos, retrospectives, aria, browsers, screen-readers, accessibility, w3c
The Popover API: Your New Best Friend for Tooltips (dev)1856
pop-overs, apis, tooltips, css, javascript
Web Components: Little Bits (web)1855
videos, web-components
Practical Accessibility Tips You Can Apply Today (pic)1854
accessibility, tips-and-tricks
An Interesting HTML Parser Conundrum (dbu)1853
parsing
The “bdi” Element (hey)1852
semantics, internationalization
What’s the Difference Between HTML’s Dialog Element and Popovers? (chr/fro)1851
modals, pop-overs, comparisons
How to Learn HTML: 46 Great Sites, Courses, and Books (All Free)1850
how-tos, learning, courses, books, link-lists
The “b” Element (hey)1849
semantics
“img sizes=auto” for Native Lazy Loading (ste)1848
code-pens, images, lazy-loading, performance
Hire HTML and CSS People (fon)1847
css, hiring, engineering-management
Why HTML Has Both “<b/i>” and “<strong/em>”?1846
semantics
The Importance of Title Tags: Tips and Tricks to Optimize for SEO (web)1845
seo, optimization, tips-and-tricks
State of HTML 2024 (sac/dev)1844
surveys
Request for Developer Feedback: Customizable Select (una)1843
forms
2024: 0.5% of the Global Top 200 Websites Use Valid HTML (j9t)1842
conformance, metrics, quality, craft
What Does Hydration Mean? (chr/fro)1841
hydration, concepts, javascript, dom
Going Buildless (mxb)1840
building, components
The HTML History and Optimization Cheat Sheet (j9t)1839
history, optimization, cheat-sheets
Should Form Labels Be Wrapped or Separate? (sib/tpg)1838
forms, labels, accessibility, browsers, assistive-tech
HTML Whitespace Is Broken (dev)1837
whitespace
Semi-Annual Reminder to Learn and Hire for Web Standards (aar)1836
learning, fundamentals, standards, css
Headings (web)1835
headings, accessibility
Paragraphs (sco)1834
accessibility