
Popover API and dialog: Building Native Modals Without a Modal Library
The popover attribute and the dialog element now cover menus, toasts, and modals natively. Here is what each does, where they differ, and what still needs code.
Read more →
The popover attribute and the dialog element now cover menus, toasts, and modals natively. Here is what each does, where they differ, and what still needs code.
Read more →
How heading levels and HTML5 sectioning elements create document structure, what the proposed outline algorithm was and why it failed, and how to build heading …
Read more →
How to build forms that work for everyone — label association, error messaging patterns, fieldset and legend for grouped controls, and the focus management that …
Read more →
The first rule of ARIA — use native HTML — and when ARIA roles are actually necessary: the patterns where native HTML falls short and assistive technology needs …
Read more →
How the browser selects among image candidates — the srcset descriptor syntax, the sizes attribute calculation, the picture element for art direction, and …
Read more →
CSS techniques for displaying dates, timestamps, and calendar interfaces — formatting, layout patterns, and the semantic HTML that should sit underneath them.
Read more →
What progressive enhancement actually means in practice — not a nostalgic HTML-first dogma, but a structural approach to building interfaces that work for more …
Read more →
How to mark up abbreviations and acronyms in HTML correctly — what the abbr element does, when to use title attributes, screen reader behavior, and the …
Read more →
How testing with the Lynx text browser exposes structural weaknesses in HTML that visual browsers hide — and why the fixes make every user's experience better.
Read more →
How semantic HTML elements — article, section, nav, aside, main — shape document structure, accessibility, and the user experience of every interface.
Read more →
How native HTML form validation works — input types, required, pattern, and the Constraint Validation API — before a single line of custom JavaScript.
Read more →