Lead Engineer at Stitch Fix
a.k.a. what to tell your boss
Ask for forgiveness later
Fields should have labels that are always present, error messages should be clear
Descriptive links help users provide context for where the link will take them. Uses of click here and read more should be avoided in most situations. This is also helpful for SEO!
h1-h6
for content structure<header>
for headers<nav>
for navigation<section>
for grouping page sections together<article>
for grouped content<aside>
for supplemental sidebar information<cite>
for citations<footer>
for footers<header>
for role="banner"<main>
for role="main"<nav>
for role="navigation"<footer>
for role="contentinfo"<aside>
for role="complementary"
<html lang="en">
<label for="name">Name:</label>
<input id="name" type="text" name="name">
<fieldset>
<legend>Select your pizza toppings:</legend>
<input id="ham" type="checkbox" name="toppings" value="ham">
<label for="ham">Ham</label>
<input id="pepperoni" type="checkbox" name="toppings" value="pepperoni">
<label for="pepperoni">Pepperoni</label>
</fieldset>
// good
<img src="catomg.jpg" alt="cute fluffy cat">
//bad
<img src="catomg.jpg" alt="image of animal">
<img src="border.png" alt="" role="presentation">
*:focus {
outline: none; //BAD!!!
}
SVGs are often used as icons on interactive elements in sites. The SVG should have a title or description, then you can use the aria-labelledby attribute to tell the screen reader what element to use to describe the SVG.
Sitepoint Tips for Creating Accessible SVG
Maps, charts, graphs might be more accessible as HTML tables.
A program that helps visually impaired people navigate a computer. There are many different versions, that are often paired with a specific browser. The most common:
#techrebalanced