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.
1: Think non-binary
Think more broadly, in a more human-centered 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.
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 helps us make a difference. It aligns with our human-centered values. It's more meaningful work, using our skills for good.
- It helps us make a better product. It often results in a more concise solution to a problem. A simpler and more robust interface that's easier to build, maintain, and debug.
- It drives innovation. It’s an exciting challenge, working within stronger constraints. It requires more creativity to find good solutions.
- It's making the design vision work for more people. Not diluting the vision, making the vision work for more people. Making the experience closer to what we intended, given the huge variery and variance in human beings.
It's good for the business
- More customers: it takes the product from can't use to can use for some people. There are over 1 billion PwD in the world.
- Happier customers: it takes the product from good to great for some people.
- It's making it more usable for more more people. It's about supporting user choice and preference, as well as user needs.
- Get an edge over our competitors. Better brand perception and reputation for our diversity and inclusion efforts.
- It’s a mark of quality. A11y bugs are bugs like any other.
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.
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.
- They are in our target market. Accessibility improvements help more than just people with disabilities.
- Disability is a spectrum, not a binary.A disability can be permanent, temporary, or contextual.
- 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.
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.
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.
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 are 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.
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
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 is 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
:focusindicator as you navigate.
- Can you use functionality (like tooltips) that you usually see on
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
- Check structure
- Check interactions
- Check that the alt text of images conveys the content and function of the image
- Check form error handling
- Check that the order of content make sense
Do an audit
- Check the page title.
- Check the page headings.
- Test with the keyboard.
- Test zoomed in to 400%.
- Run the aXe browser extension.
- Run the ARC toolkit browser extension (Chrome only).
- Do the assessment option of the Microsoft Accessibility Insights browser extension (Chrome only).
- Check if some common AAA SC have been met
- Test with a screen reader.
- Do a final read-through of the WCAG SC.