Markup from hell
A collection of bad practices in HTML, copied from real websites.
#28 alert level 1
submitted on by Manuelskip code sample<h1 aria-busy="true" aria-live="polite" role="alert" class="sr-only">
Done
</h1>#27 <a6>
submitted on by Hiddeskip code sample<h6>Popular Cities</h6>
<div>
<h6 class="footerLinks">Amsterdam</h6>
<h6 class="footerLinks">Rotterdam</h6>
<h6 class="footerLinks">Utrecht</h6>
<h6 class="footerLinks">Den Haag</h6>
<h6 class="footerLinks">Eindhoven</h6>
</div>#26 HTMHell special: tasty buttons
submitted on by ManuelThe second HTMHell special focuses on another highly controversial pattern in front-end development:
🔥 the burger button. 🔥
The burger button and his tasty friends (kebab, meatball and bento) usually reveal a list of links when activated. According to our studies, these buttons are highly optimized for mouse and touch users, but lack support for keyboard and screen reader users in most cases.
After less than 1 hours of research, HTMHell presents a collection of 18 different bad practices found on real websites.
skip code sample<div class="burger">
<span></span>
<span></span>
<span></span>
</div>#25 A link is a button is a link
submitted on by Andreaskip code sample<a tabindex="0" type="button" href="/signup" role="link">
<span class="focus" tabindex="-1"></span>
<span>
<span>
<span>Sign up</span>
<i class="icon icon-external-link" aria-hidden="true" role="img"></i>
</span>
</span>
</a>#24 A placeholder is not a label
submitted on by Manuelskip code sample<input type="text" placeholder="First name">