Accessibility basics [1.5d]

Some of the people using your app can't see the screen, can't use a mouse, or rely on assistive technology to read the page. Accessibility is a spectrum of support, and nobody expects a junior developer to master all of it. We do expect the basics: markup that says what things are, focus that behaves, and a keyboard that works everywhere. This card teaches those basics and lets you experience your own MovieDB the way a screen-reader user does.

Important

Work on this lesson in teacher mode.

Learning goals

  • You can explain that accessibility support comes in levels, and which basics we expect in every app we build.
  • You can structure a page with semantic elements and headings so that landmarks and outline are meaningful to assistive technology.
  • You can keep focus under control and make every interaction reachable and usable with the keyboard alone.
  • You can explain when semantic HTML is not enough and ARIA attributes are needed, and use them correctly.
  • You can explain why built-in HTML elements are preferable to custom JavaScript components: they bring keyboard activation, focus handling and semantics for free, so extend them instead of rebuilding them.
  • You can use accessible markup to make tests more robust, e.g. by matching elements by their accessible name or aria-label.

Resources

Read what's new to you, skim what's familiar, skip what you already master. Stop when you can meet the learning goals.

Your agent can also generate an overview, a tutorial or an explanation for anything here, tailored to what you already know. Just ask.

Pick one introduction

For specific goals

Exercises

Use MovieDB with your eyes closed

Install a screen reader (on Linux probably Orca) and learn the few commands you need to navigate a page.

Then use your own MovieDB with the screen reader and your eyes closed: browse the movie list, open a movie, create one, edit it, delete it. Note every point where you get lost, where focus jumps somewhere unexpected, where a control has no name, or where the keyboard doesn't get you further.

Fix the issues you found. Then repeat the tour.

Henning Koch