Accessibility

best practice & tooling

A11y
best practice & tooling

Plan

Semantics

1 man 2 woman meme <div> <section>
<aside>
<article>

Common semantic tags (landmarks)

semantic layout example

<header>

The <header> HTML element represents introductory content, typically a group of introductory or navigational aids. It may contain some heading elements but also a logo, a search form, an author name, and other elements.

header tag example

<main>

The <main> HTML element represents the dominant content of the <body> of a document. The main content area consists of content that is directly related to or expands upon the central topic of a document, or the central functionality of an application.

main tag example

<footer>

The <footer> HTML element represents a footer for its nearest sectioning content or sectioning root element. A <footer> typically contains information about the author of the section, copyright data or links to related documents.

footer tag example

<nav>

The <nav> HTML element represents a section of a page whose purpose is to provide navigation links, either within the current document or to other documents. Common examples of navigation sections are menus, tables of contents, and indexes.

nav tag example

<aside>

The <aside> HTML element represents a portion of a document whose content is only indirectly related to the document's main content. Asides are frequently presented as sidebars or call-out boxes.

aside tag example

<article>

The <article> HTML element represents a self-contained composition in a document, page, application, or site, which is intended to be independently distributable or reusable (e.g., in syndication). Examples include: a forum post, a magazine or newspaper article.

article tag example

<section>

The <section> HTML element represents a generic standalone section of a document, which doesn't have a more specific semantic element to represent it. Sections should always have a heading, with very few exceptions.

section tag example

Headings (<h1>, <h2> ...)

Aria-labels & alt-text

Use labels for inputs

<button> vs <a>

Use native solutions (focus & API)

native tags example

Tab-navigation & focus

Outline styling

they are kids meme
                 

:focus {

    outline: none;

}

:focus demo

Non-accessible demo

Accessible demo

Simplified view & snippets

google chrome snippet example simplified view example

Contrast Content

contrast checker example contrast checker

Color blindness

color blindness mode on trello

color blindness emulation - chrome dev-tools

Lighthouse

lighthouse example

Screen Readers

NVDA NVDA
Voice Over Voice Over
chrome screen reader Screen Reader

Links

Lets make accessible web.
Thank u!