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