On day 1 of the #HTMHellAdventCalendar @5t3ph describes an accessibility issue that can arise when you use popovers and dialogs together. #HTMHellAdventCalendar

https://htmhell.dev/adventcalendar/2025/1/

Top layer troubles: popover vs. dialog - HTMHell

A collection of bad practices in HTML, copied from real websites.

Top layer troubles: popover vs. dialog - HTMHell

On day 2 @boldewyn reminds us of a hellish deprecated element in HTML: `<plaintext>` #HTMHellAdventCalendar

https://htmhell.dev/adventcalendar/2025/2/

Using the Ancient Evils for Debugging - HTMHell

A collection of bad practices in HTML, copied from real websites.

Using the Ancient Evils for Debugging - HTMHell

On day 3 @tunetheweb introduces us to Speculation Rules and recent improvements to the API that help us speed up our websites. #HTMHellAdventCalendar

https://htmhell.dev/adventcalendar/2025/3/

Speculation rules improvements - HTMHell

A collection of bad practices in HTML, copied from real websites.

Speculation rules improvements - HTMHell

On day 4 @mehm8128 introduces us two future solutions for creating cross-root references. #htmHellAdventCalendar

https://htmhell.dev/adventcalendar/2025/4/

Referencing HTML elements inside Shadow DOM - HTMHell

A collection of bad practices in HTML, copied from real websites.

Referencing HTML elements inside Shadow DOM - HTMHell
IDREFs: What they are and how to use them - HTMHell

A collection of bad practices in HTML, copied from real websites.

IDREFs: What they are and how to use them - HTMHell

On day 6 @colabottles reminds us how powerful the lang attribute is #HTMHellAdventCalendar

https://htmhell.dev/adventcalendar/2025/6

Accessible by Design: The Role of the 'lang' Attribute - HTMHell

A collection of bad practices in HTML, copied from real websites.

Accessible by Design: The Role of the 'lang' Attribute - HTMHell
Controlling dialogs and popovers with the Invoker Commands API - HTMHell

A collection of bad practices in HTML, copied from real websites.

Controlling dialogs and popovers with the Invoker Commands API - HTMHell

On day 8 @patrickbrosset illustrates how the fact that HTML is so forgiving can be a blessing and a curse. #htmhellAdventCalendar

https://htmhell.dev/adventcalendar/2025/8/

What's wrong with this HTML, and is it valid? - HTMHell

A collection of bad practices in HTML, copied from real websites.

What's wrong with this HTML, and is it valid? - HTMHell
Discover Dialog - HTMHell

A collection of bad practices in HTML, copied from real websites.

Discover Dialog - HTMHell

@sarajw thank you for talking up modern HTML5 modals, Sara! It just so happens that I have some old modals I need to fix soon and this is going to save me quite a bit of pain!

@matuzo