Let's ruin all the (accessible) things
statt Live-Coding?
Was, für wen und warum?
Barrierefreies Internet sind Web-Angebote, die von allen Nutzern unabhängig von körperlichen oder technischen Möglichkeiten uneingeschränkt (barrierefrei) genutzt werden können.
Um wen geht es eigentlich?
Arten von Hindernissen
beruhen auf verwendeten Techniken oder Programmierungen, Hard- und Softwareeinschränkungen (auch durch assistive Technologien) oder Problemen bei der Datenübertragung
beruhen auf unflexibler oder mangelhafter Gestaltung
beruhen auf unzureichender redaktioneller oder struktureller Aufbereitung des Inhalts und seiner Umsetzung für das Internet
sind bedingt durch organisatorische Umstände und das Umfeld, in dem Entscheidungen getroffen werden
Warum müssen wir uns kümmern?
Es ist Bewegung in der Sache!
für Webentwickler, -designer und -redakteure
für barrierefreie Websites
role="main"
, role="navigation"
, role="dialog"
)aria
-Attribute: angereicherte Eigenschaften und Zustände, die HTML nicht kommunizieren kann, z. B. Zugehörigkeiten (Schalter + Menü), Öffnungszustand, zugänglicher Name<div>
, <span>
…)<p>
statt <div>
und <br>
<ul>
, <ol>
und <dl>
<th>
, nicht für Layoutzwecke!<header>
, <main>
, <footer>
, <nav>
, <aside>
, <article>
, <section>
<a>
führen zu einer Ressource<button>
lösen eine Aktion aus (innerhalb der aktuellen Ressource)<div class="button" onclick="…">
— unsemantisch, aufwendig und fehleranfällig!*
, Schriftart für <input>
, browserspezifische Standardabstände).classname {…}
→ [attribute=value] {…}
→ element {…}
→ #id {…}
!important {…}
em
, rem
, %
), um Text-Zoom nicht zu verhindernhidden
-Attribut / display: none
aria-hidden="true"
role="presentation"
<meta name="viewport" content="user-scalable=no">
)tabindex
herumfummeln!:focus-within
oder (aufwendigere) JavaScript-Lösungen nutzenoutline: none
, allenfalls mit Ersatz (WCAG SC 2.4.7):focus-visible
(bisher nur Firefox als :-moz-focusring
)hidden
-Attribut / display: none
):hover
, :focus
, :active
, :visited
)<button disabled>
)required
, aria-valid
aria-haspopup
, aria-expanded
(z.B. Hamburger-Menü)aria-page="current"
)<html lang="de">
)<span lang="de">
)src
-, href
-, title
-, placeholder
-, aria-label
-, aria-labelledby
-, aria-describedby
-Attributeprefers-reduced-motion
eingehen (CSS & JavaScript)The biggest misconception about accessibility is that by adding it you're doing somebody a favor. You're not, you're doing your job. #a11y
— james williamson (@jameswillweb) 20. Oktober 2016