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 and included. 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, doctype-switching, 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” RSS feed (per email)

Entry (Sources) and Additional TopicsDate#
The Siren Song of “ariaNotify()” (wil/css)2,149
javascript, aria, notifications, attributes, jaws, nvda, voiceover, screen-readers, accessibility
“headingoffset” Is Not the Document Outline Algorithm (aar)2,148
attributes, headings
How Building an HTML-First Site Doubled Our Users Overnight (moh)2,147
web-components, validation, traffic, case-studies
WWDC26: Rediscover the HTML “select” Element2,146
videos, forms, css
Another Stab at the Perfect CSS Pie Chart… Sans JavaScript (vil/css)2,145
css
Astro: HTML First, JavaScript When You Need It (jad)2,144
astro, javascript
Context-Aware Headings in HTML (mat)2,143
headings, attributes
Gary Illyes: The Web’s JavaScript Mess Is an AI Agent Nightmare (ppc)2,142
ai, ai-agents, javascript, rag, llmstxt
Re: Accessibility Question: Is Nesting Interactive Elements Bad? (aar)2,141
accessibility, nesting
Accessible (I Think) Split-Cell Table Headers (mey)2,140
css, tables
Managing Anchor Associations With Data Attributes and Advanced “attr()” (dxn/fro)2,139
anchor-positioning, custom-data, css, functions, attributes
Not Every Form Field Needs to Be in a Fieldset (jea)2,138
forms, design-systems, accessibility
Don’t Put “aria-label” on Generic Elements Like Divs (mat)2,137
attributes, aria, screen-readers, support, accessibility
What’s New in Web UI (una+)2,136
videos, web-platform, user-experience, principles, canvas, css, google
Accessible by Design: HTML, CSS, Javascript, and ARIA Techniques That Scale2,135
videos, accessibility, css, javascript, aria
Declarative Partial Updates (tun+)2,134
apis, chrome, google, browsers
Introducing the HTML-in-Canvas API Origin Trial (nma)2,133
introductions, canvas, apis, origin-trials, chrome, google, browsers
A Few Ways of Specifying Per-Theme Colours in Only CSS2,132
css, dark-mode, colors, techniques
hihtml (j9t)2,131
packages, npm, conformance, links, link-rot, minification, html-minifier, optimization, quality
You Don’t Know HTML Lists2,130
lists, semantics
AI and HTML: Validating, Omitting Optional Code, and Minifying as Token Optimization (j9t)2,129
ai, token-optimization, conformance, minimalism, minification, optimization
Install Web Apps With the New HTML “install” Element (pat)2,128
web-apps, installing, origin-trials, chromium
Not All Hidden Content Is Equal: How Different Hiding Methods Impact Accessibility2,127
accessibility, hiding, css, aria, attributes, techniques, comparisons
In-n-Out-Styling With Chris Coyier (chr/sma)2,126
videos, css
Out With the JS, in With the HTML (jim)2,125
javascript, refactoring
The “<selectmenu>” Element: Stop Using JavaScript Dropdown Libraries2,124
forms, javascript, css
Using Claude Code: The Unreasonable Effectiveness of HTML2,123
claude, anthropic, ai, efficiency
HTML.md (j9t)2,122
documentation, ai
What’s !important #10: HTML-in-Canvas, Hex Maps, E-Ink Optimization, and More (dxn/css)2,121
css, retrospectives, canvas, apis, images, web-platform
ARIA Roles and Web Accessibility: A Quick Guide (lev)2,120
guides, accessibility, aria, attributes
Hard to Read One-Liners (kri)2,119
css, collaboration
The End of Responsive Images (wil/pic)2,118
images, responsive-design
Visual Validation Feedback for Form Fields (aar)2,117
forms, validation, javascript
The Web Is Fun Again: First Experiments With HTML in Canvas (ami/fro)2,116
experiments, canvas, javascript
Multi-Level Navigation: The Challenge of Identifying Parent Sections for Screen Readers (ele)2,115
navigation, aria, screen-readers, accessibility
A11y 101: 3.1.1 Language of Page (nat)2,114
introductions, accessibility, wcag, localization
My Thoughts on the “focusgroup” Attribute Proposal (stv)2,113
forms, attributes
Video as Code: A Deep Dive Into HeyGen’s Hyperframes2,112
deep-dives, multimedia, css, tooling
The Community Has Spoken, Now We Need Browsers Vendors to Help: A “<rangegroup>” Update (uti)2,111
community, browsers
The Radio State Machine (ami/css)2,110
css, state-management
Why AI Sucks at Front End (arg)2,109
ai, css
How to Use Standard HTML Video and Audio Lazy-Loading on the Web Today (sco)2,108
how-tos, multimedia, lazy-loading, performance
Old Advice: Hiding Content Has No Effect on Accessible Name or Description Calculation (ste)2,107
accessibility, hiding, aria
Making Emojis and Icons Screen Reader Accessible (pop)2,106
emoji, icons, images, accessibility, screen-readers
Semantic HTML Just Might Make Your CSS Less Fragile (sch)2,105
css, semantics, resilience
There’s No Need to Include “Navigation” in Your Navigation Labels (tem)2,104
accessibility, labels, navigation
Mike Smith Fireside (ste)2,103
videos, interviews, standards, accessibility, community
Headings the Right Way: Site Building Tips for Accessible Page Content (dru)2,102
videos, headings, accessibility
Bad Example: Timesheet Submit Button (rac)2,101
buttons, accessibility
Tooltips That Work for Everyone (ele)2,100
tooltips, accessibility, aria, attributes, screen-readers, nvda, jaws
Quick Tip: Don’t Use “<abbr>” (nat)2,099
tips-and-tricks, screen-readers, support, accessibility
Astro: How to Set Up More Powerful HTML Minification (in 31 Seconds) (j9t)2,098
how-tos, astro, html-minifier, minification, optimization
New Bookmarklet—Structure Revealer (llo)2,097
bookmarklets, accessibility
Abusing Customizable Selects (pat/css)2,096
forms, css, functions
Testing Browser Support for “focusgroup” (ada)2,095
attributes, focus, javascript
The Enforced Accessibility of the “geolocation” Element (chr/fro)2,094
geolocation, accessibility
Request for Developer Feedback: “focusgroup” (jac)2,093
attributes, chromium, browsers
The Different Ways to Select “<html>” in CSS (dxn/css)2,092
css, selectors
You Don’t Know HTML Tables2,091
tables, javascript
Your Skip Link Targets May Not Need “tabindex=-1” to Work Properly (mat)2,090
skip-links, attributes, accessibility
1995: From Batman Forever’s Cinematic Design to HTML Tables (ric)2,089
web, history, design, netscape, mosaic, browsers, tables, layout, wysiwyg, code-editors
Figcaptions Versus Alt Text (tem)2,088
images, alt-text, accessibility, comparisons
You Can Use Newline Characters in URLs (lem)2,087
urls, data-urls, links, attributes
“role=presentation” Is No Alternative for “aria-hidden=true” (mat)2,086
accessibility, aria, attributes, comparisons
When Is a Link Not a Link? (dec)2,085
links, semantics, accessibility
Matt May Speaks (mat+)2,084
videos, interviews, accessibility, standards
“aria-haspopup” Might Not Do What You Think It Does (mat)2,083
aria, attributes, navigation, accessibility
Standard HTML Video and Audio Lazy-Loading Is Coming (sco)2,082
multimedia, lazy-loading, standards, performance
Native HTML Components Don’t Guarantee Good UX (ada)2,081
components, user-experience
The Problem With HTML Reset Buttons (ada)2,080
buttons, user-experience
An Official* Logo for HTML (zac)2,079
Everything You Never Wanted to Know About “visually-hidden” (dbu)2,078
css, hiding, accessibility
Notes on Relying on the ARIA Authoring Practices Guide (ste)2,077
aria, accessibility
Mastering Dialog Accessibility2,076
accessibility, modals, aria
Virtual Scrolling for Billions of Rows—Techniques From HighTable (sev)2,075
tables, scrolling, performance, react
You Might Not Need “role="presentation"” (stv/pic)2,074
aria, accessibility
You Know What? Just Don’t Split Words Into Letters (aar)2,073
accessibility, screen-readers, support
Trying to Make the Perfect Pie Chart in CSS (mon/css)2,072
css
How to Improve Your HTML Game (j9t)2,071
how-tos, conformance, learning, career
Introduction to the New HTML Element “<geolocation>” (mat)2,070
introductions, geolocation
Accessible Inline Collapsible (eri)2,069
accessibility, disclosure-widgets
Repeatable Form Fields Made Simple (aar)2,068
forms, web-components
More Invoker Commands, and More Reasons Not to Use JavaScript Please (paw)2,067
examples
SPAs Are a Performance Dead End (yeg)2,066
single-page-apps, performance
Barriers From Links With ARIA (aar)2,065
accessibility, links, aria
I Learned the First Rule of ARIA the Hard Way (css)2,064
accessibility, aria, semantics
Faking a Fieldset-Legend (tyl/clo)2,063
forms, css
Accessible Faux-Nested Interactive Controls (eri/pic)2,062
accessibility, conformance, nesting
SEO (htt)2,061
web-almanac, studies, research, metrics, seo, robotstxt, llmstxt, links, content, structured-data, amp, internationalization
The Incredible Overcomplexity of the Shadcn Radio Button (pau)2,060
forms, shadcn, complexity
EPUB and HTML—Survey Results and Next Steps (rei/w3c)2,059
surveys, epub
So You Think Your Website Is Doing Great (cit)2,058
javascript, css, quality
ARIA Roles Can Remove Their Children’s Semantics (ste)2,057
aria, semantics, accessibility
Introducing the “<geolocation>” HTML Element (tom+)2,056
introductions, geolocation, chrome, google, browsers
A Polyfill for the HTML “switch” Element (tom)2,055
forms, polyfills
What Is the Minimum Markup Needed to Create a Modal? (rus)2,054
modals, minimalism, css, accessibility
Very Good Components (bee)2,053
websites, components
How Browsers Work (dmy)2,052
websites, guides, browsers, urls, http, tcp, dom
How Can You Tell What’s Allowed Inside Each HTML Element? (rus)2,051
conformance
HTML Content Categories (rus)2,050
semantics
The Final Nail in the HTML5 Document Outline Coffin (tem)2,049
headings, accessibility
Opening and Closing Dialogs Without JavaScript Using HTML Invoker Commands (sch)2,048
modals
Revisiting HTML Streaming for Modern Web Performance (per)2,047
performance, streaming
The Three Semantics of HTML (mat)2,046
semantics
For the Love of “<details>” (dev/mat)2,045
disclosure-widgets
2026 Predictions: The Next Big Shifts in Web Accessibility (web)2,044
accessibility, outlooks, ai, wcag
The HTML Elements Time Forgot (val/mat)2,043
history
The Two Most Important Tools for HTML Developers2,042
tooling, conformance, minification, html-minifier, htmlnano, swc
Why “role="button"” on a “<button>” Does Nothing (rus)2,041
buttons, attributes, aria
Styling by Language: Using the “lang” Attribute for Multilingual Design (mat)2,040
internationalization, css
Did You Know Some ARIA Roles Remove Child Semantics? (rus)2,039
aria, semantics, accessibility
The Many Lives of the Page Title (kat/mat)2,038
user-experience, accessibility, wcag
Accessibility Is Personal (css)2,037
accessibility
Semantics Beyond the Tag Name (kno/mat)2,036
attributes, aria, semantics, accessibility
Targeting by Reference in the Shadow DOM (mey)2,035
shadow-dom, javascript
The Anatomy of an Accessible Text Field (ink)2,034
forms, accessibility, labels
Forms Are a Badly Designed Part of HTML (jen/mat)2,033
forms, standards
Don’t Leave the Screen Reader Hungry (ger/mat)2,032
emoji, screen-readers, accessibility
How “aria-labelledby” Really Works (rus)2,031
accessibility, aria, attributes
Giving Pages a Clear Shape by Using Headings (mat)2,030
headings
State of HTML 2025 [Results] (sac/dev)2,029
surveys, metrics
Does Chrome Get the “<header>” Element Wrong? (rus)2,028
aria, chrome, google, browsers
I Ported JustHTML From Python to JavaScript With Codex CLI and GPT-5.2 in 4.5 Hours (sim)2,027
migrating, ai, python, javascript, tooling, parsing
Them’s the Breaks (tyl/mat)2,026
The “<time>” Element Should Actually Do Something (nol)2,025
time, semantics
Changes in the World of HTML Minifiers (apo)2,024
tooling, minification, html-minifier
Hell Is Other People’s Markup (llo/mat)2,023
auditing, tooling
Why We Teach Our Students Progressive Enhancement (cyd)2,022
progressive-enhancement, css, javascript, training
How HTML Changes in EPUB (rob/mat)2,021
epub, standards
A11y Freedom Beaver (ste/mat)2,020
accessibility, aria
Useful Patterns for Building HTML Tools (sim)2,019
ai, tooling
Discover Dialog (sar/mat)2,018
modals, javascript, css
That Time I Tried Explaining HTML and CSS to My 5-Year Old Niece (css)2,017
css, learning
What’s Wrong With This HTML, and Is It Valid? (pat/mat)2,016
standards, conformance, web-platform
Comparing HTML Minifiers (j9t)2,015
minification, tooling, html-minifier, htmlnano, metrics, comparisons
Controlling Dialogs and Popovers With the Invoker Commands API (sta/mat)2,014
modals, pop-overs, apis, attributes
Accessible by Design: The Role of the “lang” Attribute (col/mat)2,013
accessibility, internationalization, attributes, metrics
NoLoJS: Reducing the JS Workload With HTML and CSS (aar/per)2,012
disclosure-widgets, forms, modals, pop-overs, navigation, scrolling, positioning
IDREFs: What They Are and How to Use Them (kil/mat)2,011
forms, aria, accessibility
Referencing HTML Elements Inside Shadow DOM (meh/mat)2,010
shadow-dom, web-components
HTML Semantics: The Short Descriptions of All 113 Elements (j9t)2,009
semantics, overviews
Exploring Large HTML Documents on the Web (per)2,008
performance, metrics
Using the Ancient Evils for Debugging (bol/mat)2,007
debugging
How Modern Browsers Work (add)2,006
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)2,005
how-tos, eleventy, html-minifier, minification, optimization
What Are Invokers? Interactivity Without JavaScript (tol/syn)2,004
videos, javascript, pop-overs
Testing Methods: Page Titled (dec)2,003
accessibility, wcag, testing
A Complete Guide to the HTML Number Input (oll)2,002
guides, attributes, forms
“::details-content”: Style Expandable Content Without Wrapper Divs (tre)2,001
disclosure-widgets, css
Why Headings Are Important in HTML: Structure, Accessibility, and SEO2,000
headings, accessibility, seo
Headings: Semantics, Fluidity, and Styling—Oh My! (geo/css)1,999
headings, css
Link vs. Button: Choosing the Right Element for the Right Job (tpg)1,998
links, buttons, accessibility, wcag, comparisons
Tailwind CSS Won the War… but We’re the Losers1,997
tailwind, css, web-platform
Explaining the Accessible Benefits of Using Semantic HTML Elements (geo/css)1,996
semantics, accessibility
Now Available: “On Web Development II”! (j9t)1,995
books, css, engineering-management, maintainability, quality
Just Use a Button (cfe)1,994
buttons, semantics
HTML Minifier: A 12-Year Journey Building and Maintaining an Open Source Tool1,993
minification, tooling, windows, asp-net, retrospectives
ChatGPT Sez Build With Semantics First (ste)1,992
chatgpt, chatgpt-atlas, ai, openai, browsers, semantics, accessibility
Parenthetical Asidenotes (mey)1,991
css
Don’t Forget These Tags to Make HTML Work Like You Expect (jim)1,990
What’s an Interactive Element? (mat)1,989
focus, concepts
Challenging the Idea of “Optional HTML” (mar)1,988
guest-posts, minimalism
Links and Anchors: Ancient HTML and JS Magic in Your Browser (cod/wea)1,987
css, javascript, links
What State ARIA In? (tpg)1,986
aria, accessibility
Headers, Headings, and Titles (tem)1,985
headings, comparisons, terminology
Implicit Labels Aren’t (cfe)1,984
forms, labels
A Look Into Customizable HTML “select” Elements1,983
forms, css
Page Headings Don’t Belong in the Header (tem)1,982
headings, skip-links, accessibility
Tables: Beyond Rows and Columns (tpg)1,981
accessibility, wcag, tables, semantics, jaws, nvda, screen-readers
HTML “dialog”: Getting Accessibility and UX Right (jar)1,980
modals, scrolling, accessibility, user-experience
HTML—the Most Difficult Programming Language in the World (j9t)1,979
programming, conformance, professionalism
Numbers That Fall (Scroll-Driven Animations and Sibling Index) (chr/fro)1,978
css, animations, scrolling, effects
When to Use Modal vs. Dialog Components (a11)1,977
modals, aria, accessibility
Lowriders and Websites (aaa)1,976
css, craft
Rethinking Cookie Dialogs (nat)1,975
accessibility, disclosure-widgets, cookies, consent-management
A Progressive Enhancement Challenge (chr/fro)1,974
progressive-enhancement, javascript, feature-detection, support
How to Optimize Viewport for Mobile for Faster Interactions (deb)1,973
how-tos, viewport, mobile, performance, optimization
Understanding the Removal of 4.1.1 Parsing in WCAG 2.2 (tpg)1,972
accessibility, wcag, conformance
HTML’s Best Kept Secret: The “<output>” Tag (den)1,971
Let’s Play Accordion With the HTML “details” Element (ale)1,970
disclosure-widgets, accordions
Creating a Truly Accessible Flip Card (sib/tpg)1,969
css, javascript, accessibility
Web Development for Beginners: Creating Web Pages via HTML (rau)1,968
fundamentals, urls, servers, forms
The “picture” Element (kev)1,967
A Quick Primer on Accessible Pagination (kar)1,966
introductions, accessibility, pagination, css, assistive-tech
“aria-label” or “title”? Screen Reader Behaviour Explained (a11)1,965
attributes, accessibility, screen-readers
Navigating the World of Web Accessibility With Sara Soueidan (sar+)1,964
videos, interviews, accessibility, wcag, aria, css
2025: 0 of the Global Top 200 Websites Use Valid HTML (j9t)1,963
conformance, metrics, quality, craft
Baby Steps Accessibility—Page Titles (dec)1,962
microcontent, best-practices, accessibility
Just Use HTML (cfe)1,961
javascript
Why Moving Away From SPAs Improves Usability, Accessibility, and SEO (inn)1,960
single-page-apps, usability, accessibility, seo, semantics
Screen Reader HTML Support—Lookup (ste)1,959
screen-readers, accessibility, support, overviews
Your Images Are (Probably) Oversized1,958
images, pixel-density
Why Did I Ever Abandon HTML/CSS? (syl)1,957
css
Tricks to Write HTML and CSS 10× Faster (jay)1,956
css, efficiency, tips-and-tricks
You No Longer Need JavaScript (reb)1,955
javascript, css, examples
Opening a “details” Element From the URL (chr/fro)1,954
disclosure-widgets, urls
Hack to the Future—Frontend (the)1,953
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)1,952
how-tos, tables, accessibility
Design Hacks From the Pre-CSS Era (den/hac)1,951
tables, layout, hacks, history
A Proposal for Inline LLM Instructions in HTML Based on llms.txt (ind)1,950
ai, llmstxt
The First Rule of ARIA (nat)1,949
accessibility, aria, principles
Covering “hidden=until-found” (geo/css)1,948
hiding
5 Heading Accessibility Issues to Avoid (pop)1,947
accessibility, headings
A Progressive Complexity Manifesto (che)1,946
manifestos, complexity, web-apps, htmx, javascript, web-components, frameworks, principles
HTML Popovers Shown on Interest Should Be Accessible on Mobile Devices (uti)1,945
pop-overs, mobile, usability
HTML Is Dead, Long Live HTML (unc)1,944
css, dom, standards, metrics
When HTML Speaks Clearly1,943
accessibility, conformance, semantics
A Few Things About the Anchor Element’s “href” You Might Not Have Known (jim)1,942
attributes, links, data-urls
More Than Just Text: The Real Power of Labels (tpg)1,941
accessibility, labels, forms
HTML-First, Framework-Second: Is JavaScript Finally Growing Up?1,940
javascript, frameworks
Web Components: Working With Shadow DOM (sma)1,939
web-components, shadow-dom, dom
The “figcaption” Problem (chr/fro)1,938
css
Why and How to Write Minimal and Valid HTML, a Link Guide (j9t)1,937
minimalism, conformance, how-tos, guides, link-lists
State of HTML 2025 Now Open (lea)1,936
surveys
How Semantics and ARIA Attributes Support Accessible Design (tpg)1,935
accessibility, semantics, aria, attributes
Super Short Note: Placeholder Perfidy (ste)1,934
accessibility, placeholders
Why Semantic HTML Still Matters (jon)1,933
semantics
A Label and a Name Walk Into a Bar (ste)1,932
accessibility, labels, concepts, examples
Why I’m Writing Pure HTML and CSS in 20251,931
css
Screen Reader HTML Support Tables (ste/tet)1,930
support, screen-readers, jaws, nvda
HTML Minifier Next (a Maintained Fork of HTML Minifier) (j9t)1,929
html-minifier, minification, optimization, tooling
HTML Day 2025 (htm)1,928
awareness-days
What Is “popover=hint”? (una)1,927
attributes, pop-overs
Shadow DOM: The Ultimate Solution for Embedding Third-Party HTML Without CSS Conflicts1,926
shadow-dom, dom, css
Custom Select (That Comes Up From the Bottom on Mobile) (chr/fro)1,925
forms, css, animations, progressive-enhancement, mobile
Tabindex: What It Is, How It Works, and When to Use It (pop)1,924
focus, keyboard-navigation, accessibility
Google: Many Top Sites Have Invalid HTML and Still Rank (mat/sea)1,923
google, conformance, quality, seo
A Step Into the Spatial Web: The HTML Model Element in Apple Vision Pro (zac/web)1,922
spatial-web, apple, xr
The Mythical Magical Button (cri)1,921
buttons, css, custom-properties, custom-data
Know Your HTML (Yes, TSX Included) (hel)1,920
semantics, accessibility
CSS Cascade Layers vs. BEM vs. Utility Classes: Specificity Control (sma)1,919
css, cascade, bem, presentational-html
Selfish Reasons for Building Accessible Uis (nol)1,918
accessibility, debugging, testing
What I Wish Someone Told Me When I Was Getting Into ARIA (eri/sma)1,917
accessibility, aria, assistive-tech, support
Having “figure” Match Width of Contained Image (jef)1,916
css, images
Escaping “<” and “>” in Attributes—How It Helps Protect Against Mutation XSS (sec)1,915
attributes, security, xss, escaping, chrome, google, browsers
Why Visual Website Builders Didn’t Take Off (whi)1,914
videos, code-editors, wysiwyg, history
HTML Spec Change: Escaping “<” and “>” in Attributes (sec)1,913
attributes, escaping, security, xss
Is HTML Not a Programming Language?1,912
programming
Creating an Auto-Closing Notification With an HTML Popover (pre/css)1,911
notifications, pop-overs
ARIA/HTML Relationship Severance (ste)1,910
accessibility, aria
The “<output>” Element (kev)1,909
HTML-Native Accordions (cfe)1,908
accordions
“aria-selected”: Practical Examples and Use Cases (flo/a11)1,907
accessibility, aria, examples
How to Use ARIA Roles and Properties Effectively1,906
how-tos, aria, accessibility
Getting Creative With HTML Dialog (mal/css)1,905
modals
HTML Only Experiments (ala)1,904
websites, experiments
Up and Coming ARIA (web)1,903
accessibility, aria
The “col” Element (hey)1,902
tables, semantics
The Magic of the Most Minimal HTML Possible (and Why We Don’t Make Use of It) (j9t)1,901
minimalism, maintainability
What I Learnt About Making Websites by Reading Two Thousand Web Pages (ale)1,900
css, conditional-comments, lessons
Decorative Text Within HTML (ede)1,899
attributes, css, formatting
Making Scannable Web Pages for Assistive Technology (jar)1,898
accessibility, assistive-tech, design, headings, semantics
The “datalist” Element (kev)1,897
forms
Styling the Icon for HTML Date and Time Types (cas)1,896
forms, css, time
The “caption” Element (hey)1,895
tables, semantics
Expanding/Collapsing With “details” (ons/oze)1,894
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)1,893
internationalization, localization, conversion
How Often Should We Speak About HTML Conformance? (j9t)1,892
conformance, metrics
Just Fucking Use HTML (kyr)1,891
websites
Enhancements to the Proposed “<permission>” Element (tom)1,890
Foundations: Keyboard Accessibility (tet)1,889
fundamentals, accessibility, keyboard-navigation, focus
The True Path to Garbage Code: Figma Sites (joe)1,888
figma, quality, semantics, accessibility
The Hidden Gold of Web Accessibility: Everything About ARIA Labels (flo/a11)1,887
accessibility, aria, best-practices
K.I.S.S. ARIA (nat)1,886
aria, accessibility
The “code” Element (hey)1,885
markdown
Revisiting Image Maps (mal/css)1,884
images, image-maps, techniques
The “cite” Element (hey)1,883
semantics
Seeking an Answer: Why Can’t HTML Alone Do Includes? (chr/fro)1,882
maintainability
Menu and Navigation: The Difference (stv)1,881
navigation, pagination, aria, accessibility
The “canvas” Element (hey)1,880
canvas, semantics
Giving Software Away for Free (sim)1,879
foss, hosting, javascript
Anchor Positioning Just Don’t Care About Source Order (geo/css)1,878
css, anchor-positioning, source-order
Unlocking Accessibility: Frontend Developers Discuss Semantic HTML and Accessible Code1,877
accessibility, semantics, community
“input type="color"” (kev)1,876
forms, colors
HTML Oddities: Does the Order of Attribute Values Matter? (ede)1,875
attributes, css, selectors
The Problem(s) With Image Accessibility1,874
accessibility, images, alt-text
Mastering HTML: The Art of Minimal and Valid Code in Professional Web Development (AI Edition) (j9t)1,873
guest-posts, minimalism, conformance, semantics, interoperability, accessibility, standards
Keeping It on the “<dl>”—Another HTML Gem You Never Use (cod)1,872
lists, semantics
Creating an Accessible Accordion With HTML Description Lists (kar)1,871
accessibility, lists, accordions
5 Ways to Reduce HTML File Size on Your Website, Step 0 (j9t)1,870
performance, optimization
Default Styles for “h1” Elements Are Changing (zco/mdn)1,869
css, headings, browsers
5 Ways to Reduce HTML File Size on Your Website (deb)1,868
minification, compression, performance, optimization
ARIA in HTML (sco+/w3c)1,867
standards, accessibility, aria
Milana Cap on the Interactivity and HTML APIs, and Their Enormous Potential (mil+)1,866
podcasts, interviews, wordpress, apis, dom
Strings Are a Leaky Abstraction for HTML (joe)1,865
strings
Hiding Elements That Require JavaScript Without JavaScript (0xd)1,864
javascript, css
Tweaking Text Level Styles, Reprised (aar)1,863
css, accessibility, support, browsers, screen-readers
CSS-Only Glitch Effect1,862
css, effects
Markup Languages (j9t)1,861
overviews, link-lists, sgml, xml, xhtml, hdml, dhtml, mathml, wml, chtml
“input type="number"” (kev)1,860
forms
“aria-label” Is a Letdown (thi/wag)1,859
accessibility, aria, labels
Create an HTML Dialog When You Click an Image (cas)1,858
images, modals
The “contenteditable” “plaintext-only” Attribute Value Combination Is Now Baseline Newly Available (tom)1,857
attributes, browsers, support, web-platform
The Bare Minimum You Need to Enable View Transitions on Your Website (ami)1,856
css, view-transitions, minimalism
Quick Accessibility Wins That Are Easy to Implement (kev)1,855
videos, accessibility, semantics, alt-text, images, contrast, colors, keyboard-navigation, focus, skip-links
Is React Accessible? That’s the Wrong Question1,854
accessibility, react, jsx, semantics
Web Components vs. Framework Components: What’s the Difference? (sma)1,853
web-components, components, frameworks, comparisons
A Review of HTML Linters1,852
overviews, linting, conformance, tooling, link-lists, comparisons
Popping Preconceived Popover Ponderings (sco)1,851
accessibility, pop-overs
Future of CSS: “select” Styling Without the Hacks1,850
css, selectors, forms
Implementing “aria-describedby” for Web Accessibility (flo/a11)1,849
accessibility, aria, forms, labels
Creating Animated Accordions With the “details” Element and Modern CSS (ste/bui)1,848
css, disclosure-widgets, accordions, animations, transitions
Page Speed: Avoid Large Base64 Data URLs in HTML and CSS (deb)1,847
performance, css, data-urls, compression, base64
Introducing “command” and “commandfor” (kei)1,846
introductions, attributes
DeepSeek and HTML (j9t)1,845
ai, deepseek, minimalism, conformance
Cool Native HTML Elements You Should Already Be Using (hrr)1,844
modals, disclosure-widgets, forms, progress-indicators
Grouping Selection List Items Together With CSS Grid (pre/css)1,843
lists, forms, css, grids, layout
Building Websites With LLMS (jim)1,842
css, view-transitions
Using and Styling the “details” Element (geo/css)1,841
css, disclosure-widgets, examples
The Professional Standing of Frontend Developers (mar)1,840
guest-posts, career, learning, css, javascript, communication, collaboration, community, ai
Unlock Exciting Use Cases With the Document Picture-in-Picture API (jad)1,839
apis
CSS Meets Voxel Art: Building a Rendering Engine With Stacked Grids (cod)1,838
css, art
There’s No Such Thing as “Menubar Navigation” (tem)1,837
accessibility, navigation
When to Use Lists for Better Accessibility1,836
accessibility, lists
Introduction to Frontend Development1,835
introductions, css, javascript, frameworks, libraries, tooling, career, trends
Fixing “rowspan=0” on Tables on WebKit (kar)1,834
tables, webkit, browser-engines, browsers
Everything You Need to Know About Invoker Commands (kei/web)1,833
videos, pop-overs
“ruby-align” Is Baseline Newly Available1,832
ruby-markup, css, browsers, support, web-platform
Rethinking Find-in-Page Accessibility: Making Hidden Text Work for Everyone (sch)1,831
accessibility, search, hiding, browsers
It’s Right There in the Back of the Book (hom)1,830
accessibility, semantics
Using the “step” and “pattern” Attributes to Make Number Inputs More Useful (cas/pic)1,829
forms
Which HTML Element Are You?1,828
quizzes
Testing 10 JavaScript Frameworks on Their HTML Defaults (j9t)1,827
frameworks, javascript, conformance, comparisons, link-lists
Optimizing Images for Web Performance (tod/fro)1,826
images, performance, optimization, jpeg, png, webp, avif, caching
Taking RWD to the Extreme (sma)1,825
responsive-design, intrinsic-design, css
How to Declare Your Page’s Language (pop)1,824
how-tos, internationalization
HTML and CSS for a One-Time Password Input (chr/fro)1,823
css, forms, passwords
A Content List With Bulk Actions Using Ancient HTML and Modern CSS (tyl/clo)1,822
forms, lists, css
Using Padding to Space an Input and Label (dar)1,821
forms, labels, spacing, css
Foundations: Grouping Forms With “<fieldset>” and “<legend>” (tet)1,820
fundamentals, forms, aria
How to Set Up an Accessible Page Structure and Navigation (pop)1,819
how-tos, accessibility, navigation
XHTML in Modern Web Development (mar)1,818
guest-posts, xhtml
What Text Area Popovers Taught Me About Browser APIs (bla)1,817
forms, apis, javascript
Only One “<details>” Open at a Time (osv)1,816
disclosure-widgets
Creating an Angled Slider (zac/fro)1,815
sliders, css, effects
Don’t Wrap Figure in a Link (aar)1,814
links, screen-readers, accessibility
23 HTML Cheat Sheets, for a Different Look at HTML (fro)1,813
cheat-sheets, link-lists
Learning HTML Is the Best Investment I Ever Did (cod)1,812
learning, career
HTML Developers: Please Consider—in the Year of 2025 (ste)1,811
aria, accessibility
Clean Up HTML Content for Retrieval-Augmented Generation With Readability.js (phi/dat)1,810
scraping, tooling, nodejs, rag
Sharing a Variable Across HTML, CSS, and JavaScript (chr/fro)1,809
variables, css, javascript
Lesser Known Uses of Better Known Attributes (sma)1,808
attributes
Accessibility Essentials Every Front-End Developer Should Know (mar)1,807
accessibility, fundamentals, semantics, forms, keyboard-navigation, modals, alt-text, focus, responsive-design, reduced-motion, aria
How to Order Attributes on HTML Elements1,806
how-tos, attributes, sorting, conventions
Relatively New Things You Should Know About HTML Heading Into 2025 (chr/fro)1,805
forms, toggles, pop-overs, javascript, import-maps, css, transitions
The Difference Between HTML Attributes and Properties (pau/clo)1,804
attributes, javascript, terminology
Use “translate” to Turn Off Element Translations (ste)1,803
localization
Brief Note on Figure and Figcaption Support (aar)1,802
accessibility, screen-readers, support
HTML Is Actually a Programming Language—Fight Me (tim/wir)1,801
programming
Updated Brief Note on Description List Support (aar)1,800
lists, semantics, accessibility, screen-readers, support
Datalists Are More Powerful Than You Think (two/mat)1,799
Media (ste+/htt)1,798
web-almanac, studies, research, metrics, multimedia, images
Why Heading Order Matters in HTML (gra)1,797
headings, accessibility
Misleading Icons: Icon-Only-Buttons and Their Impact on Screen Readers (ale/mat)1,796
buttons, icons, images, accessibility, screen-readers
The Underrated “<dl>” Element (luh/mat)1,795
lists
Preloading Fonts for Web Performance With “link rel=preload” (acc/mat)1,794
performance, preloading, fonts, hints
The Search Input: They Almost Got It Right (stv/mat)1,793
forms, labels, screen-readers, assistive-tech, accessibility
The Devil Is in the “<details>” (mat)1,792
disclosure-widgets
Please Keep Your HTML Tables Clean and Lean, if You Really Need to Use Them (cer)1,791
accessibility, tables
PSA: Stop Using the “title” Attribute as Tooltip (dni/mat)1,790
attributes, tooltips, toggles, accessibility
Accessibility First: How to Design Inclusive Frontend Experiences1,789
how-tos, design, accessibility, semantics, alt-text, keyboard-navigation, aria, contrast, forms, focus
Grouping Form Fields (mat)1,788
forms
My Favourite Colour Is Chuck Norris Red (val/mat)1,787
colors
No ARIA Is Better Than Bad ARIA (kar)1,786
videos, accessibility, aria
Getting Oriented With HTML Video (sco/mat)1,785
multimedia, web-components
Microdata for Books (ala/mat)1,784
microdata
HTML Conformance: A Comparison of 6.5 npm Validator Packages (With 1.5 Recommendations) (j9t)1,783
conformance, tooling, npm, comparisons
You Don’t Need the “isOpen” Class (mau/mat)1,782
aria, accessibility
HTML “inert” Attribute (stv/5t3)1,781
attributes
The Gift You Do Not Want: A Div in a Button’s Clothing (mat)1,780
buttons, accessibility
Page by Page: How Pagination Makes the Web Accessible (mat)1,779
accessibility, pagination, css, svg
ARIA in HTML (sco+/w3c)1,778
standards, accessibility, aria
Improving User Experience for Multilingual Web Browsing (mat)1,777
user-experience, internationalization
HTML and CSS I Didn’t Even Know About Before I Started Creating Content in Japanese (mat)1,776
ruby-markup, css, internationalization
Makeshift Hot Reload (eva/mat)1,775
metadata
On-Page SEO Checklist: The Complete Task List for 2025 (sem)1,774
seo, checklists, semantics
Submit to the Quirks of HTML (fel/mat)1,773
forms
Native HTML Light and Dark Color Scheme Switching (pep/mat)1,772
dark-mode, css, javascript, functionality
Past HTML, Future HTML? (j9t/mat)1,771
Almost, but Not Quite, Entirely Unlike… (tin/mat)1,770
accessibility, buttons, ai
What Do the State of CSS and HTML Surveys Tell Us? (rac)1,769
web-platform, css, community
What Is HTML Optimization? What Is It Not? (j9t)1,768
optimization, terminology
Control the Viewport Resize Behavior on Mobile With “interactive-widget” (bra/mat)1,767
css, units, viewport, resizing, mobile, metadata
Creating an Effective Multistep Form for Better User Experience (sma)1,766
forms, javascript, user-experience
Starting Off Right: Where Autofocus Shines (kil/mat)1,765
forms, focus
The HTML Native Search Element (tre)1,764
semantics
Character-Based Alignment (css)1,763
css, alignment
Preloading Responsive Images (tre)1,762
images, hints, performance, preloading
A Button Is Not a Link (mor/mat)1,761
buttons, links
Language of Parts Bookmarklet (bea)1,760
bookmarklets, metadata, accessibility
Old Alt Text Advice (ste)1,759
accessibility, images, alt-text, microcontent, best-practices
Avoid Read-Only Controls (aar)1,758
forms, accessibility
Where Has All the Valid HTML Gone (j9t)1,757
conformance, quality
My 3 Most-Wanted CSS Table Features (dar)1,756
css, tables, wish-lists
Importing a Frontend JavaScript Library Without a Build System (b0r)1,755
javascript, libraries, commonjs, esm, nodejs
Native Dual-Range Input1,754
forms, css
State of HTML 2024 [Results] (sac/dev)1,753
surveys, metrics
The “br” Element (hey)1,752
semantics
Markup (gua/htt)1,751
web-almanac, studies, research, metrics
State of CSS and State of HTML 2024 (pat)1,750
css
The Path to Learn Web Development (fla)1,749
learning, http, css, tooling, git, javascript, typescript, databases, frameworks
How to Identify Decorative Images and Boost Accessibility (a11)1,748
how-tos, images, decoration, accessibility, aria
The Lowdown on Dropdowns in HTML and CSS (zer)1,747
css
More Options for Styling “<details>” (bra)1,746
disclosure-widgets, css
How Do HTML Event Handlers Work? (tbr)1,745
javascript, events
Disabled and Obscured (ste)1,744
accessibility, forms, wcag, standards
The “button” Element (hey)1,743
semantics, buttons, links
HTML Cheat Sheet1,742
semantics, examples, cheat-sheets
Building My Resume in HTML Using Eleventy (men)1,741
career, eleventy
20 HTML Tips You Must Know in 2024 (xiu)1,740
tips-and-tricks
The “<details>” and “<summary>” Elements Are Getting an Upgrade (sea)1,739
disclosure-widgets
The “body” Element (hey)1,738
semantics
25 Accessibility Tips to Celebrate 25 Years (jar/web)1,737
accessibility, tips-and-tricks, aria
Come to the “light-dark()” Side (sar/css)1,736
dark-mode, css, colors
Clarifying the Relationship Between Popovers and Dialogs (zel/css)1,735
pop-overs, modals, comparisons, accessibility
HTML Form Validation Is Heavily Underused1,734
forms, validation, react
Talkin’ Tables (aar/web)1,733
videos, accessibility, tables
Why Does “target="_blank"” Have an Underscore in Front? (kyr)1,732
frames, links
My Top 5 Most Popular Front-End Tips (kev)1,731
videos, css, forms, tips-and-tricks
How Should “<selectedoption>” Work? (jaf)1,730
forms
An HTML Email Template With Basic Typography and Dark/light Modes (chr/fro)1,729
templates, email, typography, dark-mode
Using Static Websites for Tiny Archives1,728
css
I’ve Been Doing Blockquotes Wrong (mic)1,727
The “blockquote” Element (hey)1,726
semantics
My Eulogy for the Open Web and Old Google1,725
open-web, google
HTML/CSS Frameworks, in Their Own Words (by Word Cloud) (j9t)1,724
frameworks, css, bootstrap, tailwind, foundation, bulma, milligram, pure, uikit, comparisons
HTML for People (bw)1,723
books, websites, examples
The New Stylable “<select>” Element (jaf+)1,722
podcasts, css, apis, forms
No Industry for Old Men (ste/web)1,721
videos, retrospectives, aria, browsers, screen-readers, accessibility, w3c
The Popover API: Your New Best Friend for Tooltips (dev)1,720
pop-overs, apis, tooltips, css, javascript
Web Components: Little Bits (web)1,719
videos, web-components
Practical Accessibility Tips You Can Apply Today (pic)1,718
accessibility, tips-and-tricks
An Interesting HTML Parser Conundrum (dbu)1,717
parsing
The “bdi” Element (hey)1,716
semantics, internationalization
What’s the Difference Between HTML’s Dialog Element and Popovers? (chr/fro)1,715
modals, pop-overs, comparisons
How to Learn HTML: 46 Great Sites, Courses, and Books (All Free)1,714
how-tos, learning, courses, books, link-lists
The “b” Element (hey)1,713
semantics
“img sizes=auto” for Native Lazy Loading (ste)1,712
code-pens, images, lazy-loading, performance
Hire HTML and CSS People (fon)1,711
css, hiring, engineering-management
Why HTML Has Both “<b/i>” and “<strong/em>”?1,710
semantics
The Importance of Title Tags: Tips and Tricks to Optimize for SEO (web)1,709
seo, optimization, tips-and-tricks
State of HTML 2024 (sac/dev)1,708
surveys
Request for Developer Feedback: Customizable Select (una)1,707
forms
2024: 0.5% of the Global Top 200 Websites Use Valid HTML (j9t)1,706
conformance, metrics, quality, craft
What Does Hydration Mean? (chr/fro)1,705
hydration, concepts, javascript, dom
Going Buildless (mxb)1,704
building, components
The HTML History and Optimization Cheat Sheet (j9t)1,703
history, optimization, cheat-sheets
Should Form Labels Be Wrapped or Separate? (sib/tpg)1,702
forms, labels, accessibility, browsers, assistive-tech
HTML Whitespace Is Broken (dev)1,701
whitespace
Semi-Annual Reminder to Learn and Hire for Web Standards (aar)1,700
learning, fundamentals, standards, css
Headings (web)1,699
headings, accessibility
Paragraphs (sco)1,698
accessibility
What the Heck Is ARIA? A Beginner’s Guide to ARIA for Accessibility (a11)1,697
videos, guides, aria, accessibility
The “aside” Element (hey)1,696
semantics, accessibility
The Secret Inside One Million Checkboxes1,695
databases, community
What’s Missing From HTML and CSS? (rac)1,694
css
Make Me One (Input) With Everything (mor/mat)1,693
forms, accessibility, simplicity
What Skills Should You Focus on as Junior Web Developer in 2024? (fro)1,692
career, fundamentals, css, javascript, frameworks, tooling, learning, link-lists
How to Easily Add Dark Mode to Your Website1,691
how-tos, dark-mode, css, javascript, functionality
Is Using “aria-label” to Add Alternative Text but No “alt” Attribute Still a WCAG Fail?1,690
discussions, accessibility, attributes, forms, labels, aria, alt-text, images
Spoiler Alert: It Needs to Be Accessible (sco)1,689
accessibility, web-components, aria
Raw-Dogging Websites (bra)1,688
css, javascript, tech-stacks
The Top Programming Languages 2024 (iee)1,687
programming, comparisons, python, java, javascript, typescript, sql, go, php, lua
Foundations: Labelling Text Fields With Input and Label (tet)1,686
accessibility, fundamentals, forms, labels
Expert Guide: Writing HTML for Screen Reader Users (flo/a11)1,685
guides, accessibility, aria, alt-text, writing, screen-readers
Top 5 HTML Features You’re Not Using (but Should Be)1,684
How Are the “colspan” and “rowspan” Attributes Different? (geo/css)1,683
attributes, tables
How Does the Browser Render HTML? (and)1,682
browsers, browser-engines, rendering, dom, css, cssom, painting
“blocking=render”: Why Would You Do That?! (css)1,681
performance, rendering
Rote Learning HTML & CSS (j9t/fro)1,680
books, frontend-dogma, css, learning
The “address” Element (hey)1,679
semantics
Action Web Components Which Span the Server-Client Divide (jar)1,678
web-components, apis
ObsoHTML, the Obsolete HTML Checker (j9t)1,677
packages, npm, quality
The “abbr” Element (hey)1,676
semantics, accessibility
HTML Web Components Can Have a Little Shadow DOM, as a Treat (sco)1,675
web-components, shadow-dom, dom
The Anchor Element (hey)1,674
links, semantics, terminology, usability
The Anatomy of Accessible Forms: Best Practices (deq)1,673
accessibility, forms, best-practices
HTML Web Components Make Progressive Enhancement and CSS Encapsulation Easier (css)1,672
web-components, principles, solid, progressive-enhancement, examples
Replacing jQuery UI Datepicker With HTML Date Input (chr)1,671
jquery
Pop(over) the Balloons (css)1,670
disclosure-widgets, pop-overs, css
Learn Web Components (and)1,669
websites, courses, web-components, css, dom, javascript
Don’t Use JS for That: Moving Features to CSS and HTML (kil/jsc)1,668
videos, javascript, css
Named Alternates for WordPress (ede)1,667
wordpress
What ARIA Still Does Not Do (ste)1,666
aria, accessibility, standards
An Update on Invokers: Invoker Commands in HTML (uti)1,665
modals, pop-overs
How to Parse HTML in JavaScript (api)1,664
how-tos, parsing, javascript
Mythbusting DOM: Was DOM Invented Alongside HTML?1,663
myths, dom, history
Are Web Components Worth It?1,662
podcasts, web-components, dom, shadow-dom
A Rant About Front-End Development1,661
content, css, javascript, preprocessors, frameworks, complexity
Know the “search” Element (j9t)1,660
semantics
HTML Markup Explained: Building Blocks of Modern Web Pages1,659
fundamentals
Streaming HTML—Asynchronous DOM Updates Without JavaScript (inf)1,658
asynchronicity, dom, streaming
Ditch the Pixels: The Small and Vectorized Web (yor)1,657
svg, images
HTML Cheat Sheets: From Basics to Advanced Elements1,656
fundamentals, semantics, examples, cheat-sheets
The Ultimate Guide to Iframes (log)1,655
guides, iframes, javascript, security
Doing My Heading In (ste+)1,654
interviews, headings, accessibility
Maybe Don’t Name That Landmark (aar)1,653
semantics, accessibility
Reflection and Custom States in Web Components (cla)1,652
web-components
Fine-Tuning Text Inputs (gar)1,651
forms, attributes, usability
Semantic Code in HTML: What Is It and Does It Still Matter? (boa)1,650
semantics, accessibility, seo, maintainability, performance