Skip to content

More Accessible Products

Hello! This is a (work in progress) map to MAP (More Accessible Products): a product that everyone can use, regardless of the technology they're using, or any disabilities they might have.

It's important to remember that "the map is not the territory." Any list like this can't be exhaustive. It can only be pointers to some helpful things. Earlier items on the list are more broad and conceptual. Later items on the list are more specific and practical.

Table of contents
  1. Think non-binary
  2. Avoid barriers to access
  3. Understand the pros and cons
  4. Know the technology
  5. Follow the Standards
  6. Shift Left
  7. Design Accessibly
  8. Develop Accessibly
  9. Test Accessibly

People

1: Think non-binary

Think more broadly, in a more human-centred way. This helps us understand the wide range of human experience, that abilities exist on a spectrum, and that things seldom go as planned.

Acknowledge and embrace human diversity

Consider gender identity and expression, sexual orientation, race, religion, first language, disability (permanent, temporary, contextual), and how these things can change over time.

Consider what's between the human and the UI

Think about input methods, browser, operating system, screen size and resolution, user preferences and choices, network connection (cost, speed, latency), age and condition of hardware, age of the person, experience level, assistive technology.

Think about options and preferences, not accessibility options.

Go off The Happy Path

Consider what’s messy, fragile, unpredictable. We already know that sometimes people will encounter problems with our products. That’s why we have error states and messages. We just need to widen this lens.

2: Avoid barriers to access

Think about where barriers might occur when a person’s ability comes into contact with the product. Consider Auditory, Cognitive, Physical and Vision aspects. Consider more than one aspect at a time. Fewer barriers to access make our products more usable for more people.

Make it more usable for more people

Accessibility is essential for some and useful for many. It’s not about lowering stands, but removing barriers. Say yes to users as much as possible.

Remove existing barriers

Check where a person’s ability might come into conflict with the product.

Avoid adding barriers

During design and development, consider where a person’s ability might come into conflict with the product.

3: Understand the pros and cons

Sell the idea and understand the difficulties. People are at different levels of understanding and caring: meet them where they are and talk to them in their terms and language.

Offer good motivations

  • It’s good for us. It’s more meaningful work, aligning with our human-centred values. It helps us make more concise solutions that more simple and robust. It requires more creativity to find good solutions. It’s making the design vision work for a wide variety of people.
  • It’s good for the business. It gives us more customers (from can’t use to can use for some people). It gives us happier customers (from good to great for some people). It helps us support user choice and preference. It gives us an edge over our competitors, and improves our brand perception and reputation. It’s a mark of high quality.
  • It’s good for lowering legal risk. Some countries have legal requirements for accessibility. Some countries have anti-discrimination laws which can lead to litigation. Being seen as a brand that doesn’t care about inclusion, diversity, and accessibility is not a good look.

Be ready for objections

Have rebuttals and “but/and”s ready to deal with objections. Refer to how it affects us, the business, the legal risk.

  • People with disabilities aren’t our target market. They’re only a small group of users anyway.
    • It’s absurd to discriminate based on disability. We don’t discriminate on other aspects of being a human.
    • Accessibility improvements help more than just people with disabilities.
    • Disability is a spectrum, not a binary. A disability can be permanent, temporary, or contextual.
    • People are living longer, so the aged population is increasing. Older people tend to benefit from accessibility and usability improvments.
    • If People with Disabilities can’t use the product as it is, of course they aren’t!
  • It’s difficult. It takes too long. It’s easy to do ARIA wrong and make things worse. It’s only realistic / practical / possible on small projects. We don’t have support to do it.
    • It can be difficult at first, but it’s part of continuous professional development (like many other skills). It gets easier with practice.
    • It can be done bit by bit. Small changes add up. It’s mostly different work, not more work: making better choices earlier on.
  • It’s boring. It’s not shiny or glamorous. It limits our creativity.
    • It’s a chance to be innovative.
    • It’s part of high quality, professional, work.
    • It gives us more, happier, customers.
  • It’s a quick fix. We can quickly add accessibility things before the release. We can use an overlay. Automated tools are enough. It’s just about adding ARIA things to the code.
    • It works best when considered from the start. Finding and fixing issues at the end of the process is slow, frustrating, work. The earlier in the process we do it, the quicker and simpler it is.
    • Everyone has a part to play in making things more accessible.
  • It’s ugly. Accessible can’t be beautiful.
    • Then we haven’t found the right solution yet!
    • It does provide more constraints, but that’s an opportunity for more creative solutions.
  • Other things are higher priority.
  • It’s third party software / someone else’s responsibility (even though it’s on our site)
  • Other sites aren’t accessible, so why should we be?
  • It’s time-consuming.
    • Counter “we don’t have time to cater to special needs” by focusing on the core human need.
    • Shift Left to improve efficiency. Doing the work earlier is much quicker than doing it later.

Celebrate good accessibility

Publicly praise and celebrate accessible work. Show the teams already making accessible work that it’s appreciated. Show the teams not making accessible work yet how it’s done, and the easy and difficult bits.

Process

4: Know the technology

Have at least a high-level of understanding of what makes up a web page, and how assistive technology reads a web page. This helps us to understand the feasibility of design choices.

Think in semantic HTML

Plan to use the most semantically correct HTML for each piece of a page. For example: if an interactive element takes the user somewhere, it should be a link; if an interactive element performs an action, if should be a button. If something seems tricky or fiddly to make with HTML, review the design.

Understand the accessibility tree

Know how the accessibility tree is built from the DOM (the Document Object Model, the tree that the browser builds from the HTML of the page). Each element in the accessibility tree has a name, a role, a value, and a state.

Understand ARIA

  • Know the Rules of ARIA. Use HTML if we can, and add any ARIA carefully.
  • Have a handle on ARIA attributes. Know which ones we can get from the HTML, and which ones needs to be added.
  • Check new ideas and patterns against the ARIA Patterns for ideas for best practice.

5: Follow the Standards

Know what standards to follow and where to look for guidance. Understand that compliance with the standards is the minimum. Our goal is usable and accessible.

Remember the Priority of Constituencies

Put our users first. The Priority of Constituencies says: “difficulties to the user should be given more weight than difficulties to implementors.”

Know the Standards

The standards set the minimum (acceptable accessibility), we set the maximum.

Know the big names

Be familiar with a handful of big names in the industry. They provide useful tools and resources for using and learning.

6: Shift Left

Make more accessible decisions earlier in the process. It’s quicker and simpler to make things accessible earlier, compared to adding on accessibility at the end or fixing accessibility bugs later.

Choose accessibility as a priority

Be clear on your list of priorities, and choose to put accessibility high up that list.

Log accessibility tickets as bugs. Treat those bugs as technical debt. Track the number of tickets and the cycle time.

Check for common omissions

Before we start designing, we think about:

  • Page titles and headings
  • Colours and use of colour
  • Text alternatives for non-text content
  • Error states and messages

Offer feedback to the previous step

When issues are spotted, offer feedback to the previous step. Testing back to Development back to Design back to Product.

Product

7: Design Accessibly

Design accessible products that work well for a wide variety of people, technologies, and abilities.

Design in layers

  • Do a text-only design
    • Clarify the order and content
  • Do an HTML-only design (no presentation, no layout)
    • Clarify the order and content, the single function of each interactive element
  • Go off The Happy Path
    • Try and break it. Then fix it.

Add annotations to designs

  • Heading levels
  • ARIA Landmarks
  • Accessible names for form elements without a visible name
  • Accessible name for each group of controls, visible or not
  • Alt text for every image and icon
  • Show keyboard interactions. Follow ARIA patterns. Give a rationale for deviations from the standards.

Use standard controls where possible

Give a rationale for deviations from standards.

8: Develop Accessibly

Build accessible products that work well for a wide variety of people, technologies, and abilities.

Write semantic HTML

Use the most appropriate HTML element for thing.

Understand ARIA and use it sparingly and carefully.

Do Static Analysis

Include accessibility linting.

Write Automated Tests

Add accessibility-related tests in our unit, integration, and end-to-end tests.

Do Code Reviews

Explicitly include accessibility in code reviews.

Check that new Pull Requests are “axe clean” (there are no errors flagged by a11y automated tests).

Use the Design System carefully

A good Design System helps nudge us towards more accessible choices. Watch when combining components that the end result is still accessible (even small combinations like groups of radio buttons). Check the accessible names of things.

9: Test Accessibly

Ensure high quality, usability, and accessibility.

Test with the keyboard

  • Can you interact with every element on the page?
  • Can you see where you are on the page? Look for a visible :focus indicator as you navigate.
  • Can you use functionality (like tooltips) that you usually see on :hover?

Test with browser extensions

  • Run the aXe browser extension. This is a good tool to run first since its philosophy of ‘zero false positives’ means the list of errors is usually short.
  • Run the ARC toolkit browser extension (Chrome only). This is a good tool to run next since it will flag more errors, and provides an easy way of inspecting the accessibility of semantic structures such as headings, landmarks, links, buttons, form controls, and alt text. In particular, check that:
    • link text describes the destination of the link;
    • button text describes the action that will happen;
    • alt text conveys the content and function of each image.
  • Do the assessment option of the Microsoft Accessibility Insights browser extension (Chrome only). This is a good tool to use next because it offers good coverage of the WCAG SC (Success Criteria). It’s a reasonably lengthy process, but gets faster with practice.

Test with Screen Readers

Do an audit

Do a thorough test of the page as a whole. It helps to have an established list of steps for doing audits.

This will include some things we’ve already done. An audit is the final check that everything’s as it should be.