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