What the Slot? (by/via) | | 966 |
web-components, dom, shadow-dom |
Security Headers Using “<meta>” (by/via) | | 965 |
security, csp |
“sizes=auto” Pretty Much Requires “width” and “height” Attributes (by) | | 964 |
attributes, images, maintainability |
The Hellish History of HTML: An Incomplete and Personal Account (by/via) | | 963 |
history |
Back to Basics: 5 HTML Attributes for Improved Accessibility and User Experience (by/via) | | 962 |
fundamentals, attributes, accessibility, user-experience |
The “form” Attribute—Enhancing Form Layout Flexibility (via) | | 961 |
forms, attributes |
The UX of HTML (by/via) | | 960 |
semantics, user-experience |
How to Use Responsive HTML Video (…and Audio!) (by) | | 959 |
how-tos, responsive-design, multimedia |
Weird HTML Hacks (by) | | 958 |
css, hacks, techniques, history |
The Elevator Pitch for Web Components (by) | | 957 |
web-components, dom |
Shadow DOM Is for Hiding Your Shame (by) | | 956 |
shadow-dom, dom, web-components |
The 9 HTML Elements That Have an Attribute of the Same Name, or: The 9 Attributes That Have an Element of the Same Name (by) | | 955 |
attributes |
An Attempted Taxonomy of Web Components (by) | | 954 |
web-components |
HTML Web Components Are Just JavaScript? (by/via) | | 953 |
web-components, javascript |
Using Chrome’s Accessibility Tree for Manual Testing of HTML and ARIA (by/via) | | 952 |
videos, browsers, google, chrome, dev-tools, accessibility, testing, aria |
Exclusive Accordions Exclude (by) | | 951 |
accessibility |
HTML Web Components (by) | | 950 |
web-components |
HTML First (by) | | 949 |
websites, principles |
Do You Really Need to Validate Your HTML Code? | | 948 |
discussions, conformance |
Understanding HTML Landmarks and How to Apply Them (by/via) | | 947 |
semantics, accessibility, aria |
HTML Web Components (by) | | 946 |
web-components, web-platform |
13 HTML Attributes You Should Know About (by) | | 945 |
attributes |
Removing List Styles Without Affecting Semantics (by) | | 944 |
css, semantics, accessibility |
Don’t Turn a Table Into an ARIA Grid Just for a Clickable Row (by) | | 943 |
tables, grids, aria, accessibility |
2023: 0 of the Global Top 100 Websites Use Valid HTML (by) | | 942 |
css, conformance, metrics, quality |
Let’s Reinvent the Wheel (by) | | 941 |
css, user-experience, accessibility, web-platform |
20 Simple Ways to Style the HTML “details” Element (by/via) | | 940 |
css |
HTML vs. DOM? Let’s Debug Them (by/via) | | 939 |
videos, dom, debugging, comparisons |
Splitting Within Selects (by) | | 938 |
accessibility, forms, browsers, support |
Select Element: Now With Horizontal Rules (by/via) | | 937 |
forms, semantics, browsers, google, chrome, apple, safari, support |
Tailwind vs. Semantic CSS (by) | | 936 |
tailwind, css, semantics, comparisons, performance |
HTML Meta Tags | | 935 |
metadata |
Strikethrough Accessibility (by/via) | | 934 |
accessibility, screen-readers, assistive-tech, support |
Using ChatGPT for Smart Truncation in Responsive Web Design (by) | | 933 |
content, responsive-design, ai |
Why Unique ID Attributes Matter (via) | | 932 |
accessibility, attributes, conformance |
Does the HTML “hr” (Horizontal Rule) Benefit Screen Reader Users? (by/via) | | 931 |
accessibility, screen-readers, assistive-tech |
On the Uniting Power of a Commitment to HTML Conformance (by) | | 930 |
conformance, quality, community, web |
CSS Findings From Photoshop Web Version (by) | | 929 |
css, adobe, photoshop, case-studies |
The Selected Date Must Be Within the Last 10 Years (by/via) | | 928 |
forms, validation |
Extending the Properties of an HTML Element in TypeScript (by/via) | | 927 |
components, typescript |
An Anchored Navbar Solution (by) | | 926 |
css, navigation |
The Most Minimal Valid HTML Document (by) | | 925 |
minimalism, conformance, templates |
Easy Dark Mode With “color-scheme” (by) | | 924 |
slides, dark-mode, css, accessibility |
Stop Using JS for That: Moving Features to CSS and HTML (by/via) | | 923 |
videos, javascript, css |
HTML Popover, Videos and “display:blackhole” (by) | | 922 |
pop-overs, videos |
How Mastodon Handles Images and Web Previews (by) | | 921 |
social-media, mastodon, open-graph, metadata, images |
Misconceptions Can Kill Accessibility Momentum (by) | | 920 |
accessibility, processes |
State of HTML 2023 (by+/via) | | 919 |
surveys |
What Makes an Accessible Date Picker? Is It Even Possible? (by/via) | | 918 |
videos, accessibility |
What Can You Do With “data” Attributes? (by) | | 917 |
javascript |
How to Use the New “<search>” Element With WordPress (by) | | 916 |
how-tos, wordpress |
State of Web Accessibility, ARIA in HTML, and Missing UI Patterns (by+/via) | | 915 |
podcasts, accessibility, aria |
Browser Video Players Review (by) | | 914 |
multimedia, accessibility, browsers, screen-readers, assistive-tech, support |
10 Things You Didn’t Know About HTML | | 913 |
|
Small Details to Improve Your Website’s Experience (by) | | 912 |
user-experience, css, metadata |
Dialog Dilemmas and Modal Mischief: A Deep Dive Into Popovers and How to Build Them (by) | | 911 |
slides, pop-overs, modals, deep-dives |
Let’s Make a Rubber Button With HTML, CSS and SVG (by/via) | | 910 |
buttons, css, svg, images |
Main-ly Speaking (by) | | 909 |
accessibility |
XUL and HTML (by/via) | | 908 |
xul, comparisons |
Beginner’s Guide to Lists and How to Make Them Accessible (via) | | 907 |
guides, lists, accessibility |
An Intro to the “dialog” Element (by) | | 906 |
introductions, modals, semantics |
Supercharge Your HTML With WebC (by) | | 905 |
videos, webc |
Progressively Enhanced HTML Accordion (by) | | 904 |
semantics, accessibility, progressive-enhancement |
8 Common Heading Questions (via) | | 903 |
accessibility, headings |
Progressively Enhanced Form Validation: HTML and CSS (by/via) | | 902 |
forms, validation, progressive-enhancement, css |
Responsive Images: DIY Implementation in 6 Steps (by) | | 901 |
images, responsive-design |
Contextual Form Errors and ARIA (by) | | 900 |
accessibility, forms, aria |
A Blog Post With Every HTML Element (by) | | 899 |
semantics |
I’m Betting on HTML | | 898 |
semantics |
You Probably Don’t Need “http-equiv” Meta Tags (by) | | 897 |
metadata, http, performance |
Help Design the Inaugural “State of HTML” Survey (by) | | 896 |
community |
Blockquotes in Screen Readers (by) | | 895 |
accessibility, screen-readers, assistive-tech, support |
I Blame the W3C’s HTML Standard for Ordered Lists (by) | | 894 |
lists, semantics |
O “dialog” Focus, Where Art Thou? (by) | | 893 |
accessibility, modals, focus |
Preload vs. Early Hints vs. Fetch Priority (via) | | 892 |
videos, performance, http, hints, comparisons |
All the Places Where You Can Use “prefers-color-scheme” Media Query (by) | | 891 |
css, media-queries, javascript, dark-mode |
The Case Against Self-Closing Tags in HTML (by) | | 890 |
|
How to Validate HTML On-Line at W3C (by) | | 889 |
how-tos, conformance, tooling |
The “article” Element and Screen Readers (by) | | 888 |
screen-readers, assistive-tech, accessibility, support |
And 4 More HTML Concepts You Didn’t Know (by) | | 887 |
concepts, web-components |
The “details” Element and In-Page Search (by) | | 886 |
search, browsers, user-experience |
Under-Engineered Comboboxen? (by) | | 885 |
forms, css, accessibility |
Form and Search Landmarks (by) | | 884 |
aria, forms, browsers, assistive-tech, support |
What Does the Image “decoding” Attribute Actually Do? (by) | | 883 |
attributes, images, performance |
Button Types (by) | | 882 |
buttons |
HTML Imports (by+/via) | | 881 |
|
Django: A Security Improvement Coming to “format_html()” (by) | | 880 |
django, security |
You Can Stop Using “user-scalable=no” and “maximum-scale=1” in Viewport Meta Tags Now (by) | | 879 |
viewport, metadata, accessibility, responsive-design |
Assume the Position—a Labeling Story (by/via) | | 878 |
accessibility, forms, labels |
Semantic Code in HTML: What Is It and Does It Still Matter? (by) | | 877 |
semantics |
21 Awesome Web Features You’re Not Using Yet (by/via) | | 876 |
videos, css, javascript |
Brief Note on Popovers With Dialogs (by) | | 875 |
support, accessibility, pop-overs, modals |
11 HTML Best Practices for Login and Sign-Up Forms (by/via) | | 874 |
best-practices, forms |
Querying Parsed HTML in BigQuery (by) | | 873 |
|
Introducing the Popover API (by/via) | | 872 |
introductions, apis, pop-overs |
Be Careful Using “Menu” (by) | | 871 |
aria, design, terminology |
How to Build Lean Efficient Websites in 2023 (by) | | 870 |
how-tos, progressive-enhancement, minimalism |
Semantics and the “popover” Attribute: What to Use When? (by) | | 869 |
attributes, semantics, accessibility, pop-overs |
Fieldsets, Legends, and Screen Readers Again (by/via) | | 868 |
accessibility, forms, screen-readers, assistive-tech |
Using HTML Landmark Roles to Improve Accessibility (by/via) | | 867 |
accessibility |
HTML Landmark Roles Screen Reader Demo (by/via) | | 866 |
videos, accessibility, screen-readers, assistive-tech |
Screen Readers Don’t Announce When the User Reaches the “maxlength” Character Limit (by/via) | | 865 |
accessibility, screen-readers, assistive-tech, support |
Respect Your Children (by/via) | | 864 |
accessibility, aria |
How Large DOM Sizes Affect Interactivity, and What You Can Do About It (by/via) | | 863 |
performance, dom, optimization |
Client-Side Rendering of HTML and Interactivity (by/via) | | 862 |
performance, client-side-rendering |
How Far Back in Time Can I Take My Website’s Design | | 861 |
web, design, history, css |
Short Note: Why Isn’t “role=presentation”/“none” Allowed on Focusable Elements? (by) | | 860 |
accessibility, focus, aria |
“details”/“summary” Inconsistencies (by) | | 859 |
browsers, assistive-tech, support |
Considering Content Warnings in HTML (by) | | 858 |
content, dei |
It’s Very Likely That… (by) | | 857 |
semantics, buttons, modals |
The “details” Element Is Amazing (by) | | 856 |
|
HTML Accessibility API Mappings 1.0 (by+/via) | | 855 |
accessibility, apis |
New HTML Element: “search” (by) | | 854 |
semantics |
What Is Semantic HTML? (by/via) | | 853 |
semantics |
Five Pieces of Advice for More Accessible Websites (by) | | 852 |
accessibility |
Modern HTML Email (Tables No Longer Required) (by) | | 851 |
email, tables |
On-Page SEO Checklist: The Complete Task List for 2023 (by/via) | | 850 |
seo, checklists, semantics |
HTML: Help Users to Download Files With the HTML “download” Attribute (by) | | 849 |
attributes |
Getting Started With HTML Tables (by/via) | | 848 |
tables, introductions |
Fighting Inter-Component HTML Bloat (by) | | 847 |
components, semantics, quality |
The “search” Element (by) | | 846 |
accessibility, semantics |
The End of Front-End Development (by) | | 845 |
visions, career |
The H1 Conundrum: Understanding the Challenges of Heading Level One (by/via) | | 844 |
accessibility, semantics, headings |
Progressively Enhancing a Table With a Web Component (by) | | 843 |
javascript, tables, web-components, progressive-enhancement |
File Uploads for the Web: Uploading Files With HTML (by) | | 842 |
file-handling |
HTML Garden (by) | | 841 |
websites, art |
A Tab Interface Before Its Time (by) | | 840 |
components |
50.1% Empty Links (by) | | 839 |
accessibility, links, semantics, seo |
Relative Rounded Corners (by/via) | | 838 |
css |
ARIA vs. HTML (by) | | 837 |
accessibility, aria, semantics, comparisons |
Avoid Spanning Table Headers (by) | | 836 |
accessibility, assistive-tech, tables |
Representation of Style (by) | | 835 |
semantics |
Declarative Shadow DOM (by+/via) | | 834 |
shadow-dom, dom |
A Step-by-Step Guide to Building Accessible Carousels (by/via) | | 833 |
guides, carousels, accessibility, user-experience |
Screen Readers Don’t Convey the Semantics of “strong” and “em” (by) | | 832 |
accessibility, screen-readers, assistive-tech, semantics |
Mastodon and Open Graph (by) | | 831 |
social-media, mastodon, metadata, open-graph |
An Introduction to HTML Cheat Sheet (via) | | 830 |
introductions, semantics, cheat-sheets |
Table of Contents Progress Animation (by) | | 829 |
css, javascript, animations |
Interop 2023 CMS Checkin (by) | | 828 |
interoperability, syndication, rss, atom, semantics |
Rotating Gallery With CSS Scroll-Driven Animations (by) | | 827 |
css, javascript, animations, scrolling |
HTML Input Types (by) | | 826 |
forms |
Optimal Images in HTML (by/via) | | 825 |
images, backgrounds, performance, optimization |
Screen Readers Support for Text Level HTML Semantics (by/via) | | 824 |
semantics, screen-readers, assistive-tech, support |
Use the Dialog Element (Reasonably) (by) | | 823 |
modals, accessibility |
The Modern Way of Serving Images (by) | | 822 |
images, performance |
Musing Upon an “[alt]” Text Badge on Images (by) | | 821 |
accessibility, css |
If You Need a Link, Don’t Use a Button (by) | | 820 |
semantics, links, buttons, accessibility |
Improve Your HTML Semantic With Pico CSS (by) | | 819 |
pico |
Unordered Lists in Main Navigations (by) | | 818 |
lists, navigation, semantics |
Two Ways to Safely Break a Long Word in HTML (by) | | 817 |
|
Three Attributes for Better Web Forms (by) | | 816 |
forms, attributes |
Faking Min Width on a Table Column (via) | | 815 |
tables, css, responsive-design |
Data URLs and Pool in Your URL (by) | | 814 |
urls |
Customizing HTML Form Validation (by) | | 813 |
forms, validation |
How to Build Great HTML Form Controls (by/via) | | 812 |
how-tos, forms |
7 Required Steps to Secure Your Iframes Security (by/via) | | 811 |
frames, security, xss, http-headers, csp |
Conditional API Responses for JavaScript vs. HTML Forms (by) | | 810 |
javascript, forms, security, comparisons |
Theme Toggles | | 809 |
websites, theming, toggles, react |
Website Accessibility (15 Best Practices) (by) | | 808 |
accessibility, best-practices, content, readability, captcha, images, alt-text, forms, focus, tooling |
A Problem With Link Relationships (by) | | 807 |
links, metadata, semantics, maintainability |
Enforcing Better HTML Markup With Eleventy (by/via) | | 806 |
semantics, conformance, eleventy |
A Theory of Web Relativity (by/via) | | 805 |
metadata, structured-data |
Building an Accessible Theme Picker With HTML, CSS, and JavaScript (by) | | 804 |
accessibility, css, javascript, theming, functionality |
Common Nesting Issues in HTML (by/via) | | 803 |
nesting |
Interop 2022: End of Year Update (by/via) | | 802 |
interoperability, browsers, css |
Mini-Guide to Add an Image (by/via) | | 801 |
images |
HTML Dialog (by) | | 800 |
modals |
Modern HTML as a Foundation for Progressive Enhancement (by/via) | | 799 |
progressive-enhancement |
5 HTML Elements, and a Partridge in a Despair Tree (via) | | 798 |
semantics, accessibility |
Get That Marquee AeStHeTiC (by/via) | | 797 |
css, effects |
4 Ways CSS “:has()” Can Make Your HTML Forms Even Better (by) | | 796 |
css, selectors, forms |
An HTML-First Mental Model (by/via) | | 795 |
dom, performance |
Table Like It’s 2023 (by/via) | | 794 |
tables |
One Day We’ll Have a Fully Customisable Select (by/via) | | 793 |
css |
There Can Be Only One: Options for Building “Choose One” Fields (by/via) | | 792 |
forms |
Dear Developer, Your Assumptions Are Wrong (by/via) | | 791 |
|
Inside the Mind of a Frontend Developer: Article Layout (by) | | 790 |
css, layout |
A Modern HTML Template (2022) (by) | | 789 |
templates |
Meaningful Labels Using ARIA—or Not (by/via) | | 788 |
accessibility, forms, labels, aria |
4 More HTML Concepts You Didn’t Know (by) | | 787 |
concepts, forms, focus |
Brief Note on Description List Support (by) | | 786 |
lists, semantics, accessibility, assistive-tech, screen-readers, support |
Reading the Meter (by/via) | | 785 |
semantics, accessibility |
Landmarks and Where to Put Them (by/via) | | 784 |
semantics, aria, accessibility |
You Don’t Need ARIA for That (by/via) | | 783 |
accessibility, aria |
How to Transfigure Wireframes Into HTML (by/via) | | 782 |
how-tos, prototyping, conversion |
HTML Semantics and Accessibility Cheat Sheet (via) | | 781 |
cheat-sheets, semantics, accessibility |
Newer Things to Know About Good Ol’ HTML Lists (by/via) | | 780 |
lists, semantics |
Shadow DOM and Accessibility: The Trouble With ARIA (by) | | 779 |
dom, shadow-dom, accessibility, aria |
Upgrade Your HTML IV (by/via) | | 778 |
books, minimalism, craft, conformance |
HTML Content Model Categories (by) | | 777 |
semantics |
Lazy Loading Images in HTML (by) | | 776 |
performance, lazy-loading |
The Shape-Shifting “a” Element (by) | | 775 |
links, semantics |
The “label” Element (by) | | 774 |
labels, semantics |
Page Title Conventions (by) | | 773 |
accessibility, seo |
What Happened to Text Inputs? (by) | | 772 |
videos, forms |
Brief Note on “aria-readonly” Support (by) | | 771 |
accessibility, aria, assistive-tech, support |
You Don’t Need HTML (by) | | 770 |
websites, web-platform |
A Guide to Keyboard Accessibility: HTML and CSS (by/via) | | 769 |
guides, accessibility, keyboard-navigation, css |
Foundations: Native Versus Custom Components (via) | | 768 |
accessibility, fundamentals, components, comparisons |
Dialogs, Modality, and Popovers Seem Similar—How Are They Different? (by) | | 767 |
semantics, accessibility, modals, pop-overs |
Inside the Mind of a Frontend Developer: Hero Section (by) | | 766 |
css |
6 Steps to Improve HTML Images for Users and Developers (by) | | 765 |
images, performance, responsive-design |
16 Rare HTML Tags You Really Should Know (by/via) | | 764 |
semantics |
HTML and CSS Features, Tips for a 10× Faster Page Loading Speed (by) | | 763 |
css, performance, tips-and-tricks |
Intro to HTML-First Frontend Frameworks (via) | | 762 |
introductions, frameworks |
Building a Tooltip Component (by/via) | | 761 |
components, tooltips, css |
The Truth Behind Implicit/Explicit Form Labels (by) | | 760 |
forms, labels, accessibility |
Common ARIA Mistakes and How to Avoid Them (by) | | 759 |
accessibility, aria, mistakes |
Edit Someone Else’s Website: “contenteditable” and “designMode” (by) | | 758 |
|
HTML 2022: 20 Additional Observations From Analyzing the Web Almanac Data (by) | | 757 |
metrics, web-almanac |
A Little Semantic HTML Trick for React Components (by) | | 756 |
react, semantics, components, tips-and-tricks |
Foundations: HTML Semantics (by/via) | | 755 |
accessibility, fundamentals, semantics |
When Going Somewhere Does a Thing: On Links and Buttons (by) | | 754 |
accessibility, links, buttons, semantics |
Templating in HTML (by) | | 753 |
javascript |
GIFs Without the .gif: The Most Performant Image and Video Options Right Now (by/via) | | 752 |
performance, multimedia, images, gif |
Named Element IDs Can Be Referenced as JavaScript Globals (by/via) | | 751 |
javascript |
Learn HTML (by/via) | | 750 |
courses |
Markup (by/via) | | 749 |
web-almanac, studies, research, metrics |
Two Things I Learned by Validating My HTML Again (by) | | 748 |
conformance, lessons |
Streamable HTML Fragments (by) | | 747 |
streaming |
Quick Reminder: HTML5 “required” and “pattern” Are Not a Security Feature (by) | | 746 |
forms, security |
Will Serving Real HTML Content Make a Website Faster? Let’s Experiment! (by/via) | | 745 |
studies, research, performance |
A “details” Element as a Burger Menu Is Not Accessible (by/via) | | 744 |
semantics, accessibility |
Brief Note on Super- and Subscript Text (by) | | 743 |
accessibility, support, assistive-tech |
How to (Not) Make a Button (by) | | 742 |
how-tos, accessibility, buttons, semantics |
Why the Number Input Is the Worst Input (by/via) | | 741 |
forms, validation, accessibility |
Making Sense of WAI–ARIA: A Comprehensive Guide (by/via) | | 740 |
guides, accessibility, aria |
Wtf Is an Island and Why Is It in My Website? (by) | | 739 |
frameworks, architecture, concepts |
The “details” and “summary” Elements, Again (by) | | 738 |
accessibility |
2022: 0 of the Global Top 100 Websites Use Valid HTML (by) | | 737 |
css, conformance, metrics, quality, craft |
Nuclear Footnotes (by) | | 736 |
css |
What’s New With Forms in 2022? (by/via) | | 735 |
forms, javascript |
Building the Main Navigation for a Website (by/via) | | 734 |
navigation, css |
HTML Markup Tips for Developing Accessible Websites (by/via) | | 733 |
accessibility, aria |
A Content Warning Component (by) | | 732 |
components, css |
Disabled JavaScript Turns Off Native Lazy Loading (by) | | 731 |
javascript, performance, lazy-loading |
Accessible Lists and Tables (via) | | 730 |
accessibility, lists, tables |
Don’t Overwrite Visual Labels With “aria-label” (by) | | 729 |
accessibility, aria, labels |
Should I Use a Button or a Link? (by) | | 728 |
buttons, links, semantics |
Short Note on “figure” and “figcaption” (by) | | 727 |
accessibility |
CSS Classes Considered Harmful (by) | | 726 |
css |
Creative List Styling (by/via) | | 725 |
lists, css |
TIL: You Can Access a User’s Camera With Just HTML (by) | | 724 |
permissions |
Exploring the Underrated “output” Element (by) | | 723 |
|
Table Column Alignment With Variable Transforms (by) | | 722 |
css, tables, alignment |
Tip: Use “fetchpriority=high” to Load Your LCP Hero Image Sooner (by) | | 721 |
performance, web-vitals |
On Ratings and Meters (by) | | 720 |
semantics, css |
Capturing Images and Videos From the Camera of Mobile Devices Using HTML (by) | | 719 |
multimedia, mobile |
The Infinite Marquee (by) | | 718 |
css, animations |
Making a Website Under 1 kB (by) | | 717 |
performance, minimalism |