Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

UI/UX Design  Module 9 – Accessibility and inclusive design

Inclusive design and disability

See disability as a mismatch between people and design, widen decisions with the persona spectrum, meet the WCAG targets laws set, and plan inclusion early.

  • Beginner
  • 20 minutes
  • Examples run with Node.js 24.21.0, Python 3.14.8 and Pyodide 314.0.7
  • By MySmartCoPilot
Free lesson, Pro answers: 20 minutes
Free: the whole lesson. With a pass: the model answers to its 2 interview questions.

What you will learn

  • Explain disability as a mismatch between a person and a design, and why it matters to every product
  • Use permanent, temporary and situational cases to widen a design decision
  • Summarise the accessibility laws and standards that apply in India, the EU and the US
  • Plan inclusion from research to release instead of an audit at the end

Before you start

What you’ll learn · Before you start

What you will learn

  • Explain disability as a mismatch between a person and a design, and why it matters to every product
  • Use permanent, temporary and situational cases to widen a design decision
  • Summarise the accessibility laws and standards that apply in India, the EU and the US
  • Plan inclusion from research to release instead of an audit at the end

Before you start

On this page

The World Health Organization estimates that 1.3 billion people live with a significant disability, about one person in six. In a MealBox order flow drawn for this lesson, seven of its eight design decisions shut someone out, and only 3 of the lesson’s 15 people can finish an order.

Inclusive design treats those numbers as design problems with design fixes. You will see disability as a mismatch between a person and a design, widen each decision with permanent, temporary and situational cases, find which laws and standards set the target in India, the EU and the US, and plan inclusion into every phase of a project instead of checking for it at the end.

Disability is a mismatch between a person and a design

Dev has low vision and sets his phone’s text to twice its normal size. On the MealBox menu the photo captions are 12 px light grey and do not grow with his setting, so he orders by picture and guesses the price. In the next app he opens, the text follows his setting and he reads every word. Dev did not change between the two apps. The menu did.

Microsoft’s inclusive design principles start from this observation: exclusion happens because of “mismatches between people and experience”. Its guidebook sets two ways of seeing disability side by side, and only one of them gives a designer anything to do:

Disability as a personal attribute Disability as a mismatch
The problem sits in the person The problem sits where a person meets a design
The fix is treatment or special equipment The fix is a change to the design
A designer has nothing to change Every design decision adds or removes a mismatch
Counts people with a diagnosis Counts everyone a decision shuts out, for however long

accessibility: The degree to which people with disabilities can perceive, understand, navigate and interact with a product, and contribute to it, on equal terms with everyone else. is the result W3C’s Web Accessibility Initiative describes: people with disabilities can perceive, understand, navigate and interact with a product, and contribute to it, on equal terms. inclusive design: A way of designing that starts from the people a product shuts out, learns from their diversity and solves for one group in a way that extends to many. It covers disability as well as language, age, skills, devices and connection. is the way of working that gets there and goes further, because W3C counts language, age, connectivity, skills and economic situation among the things inclusion addresses as well.

The scale is not small. WHO’s figure of 1.3 billion is 16 % of the world’s population, and it counts only significant disability. Many more people spend part of their lives with a temporary injury, and everyone meets situations that take an ability away for a while, which is the subject of the next section.

Key idea

A disability turns into a barrier where a design demands something a person cannot give, so the design is the place where the barrier can be removed.

Checkpoint

Check: Disability as a mismatch

  1. One question Dev, who has low vision, reads one food app at his large text setting but cannot read MealBox's menu captions. Where does the mismatch view place the barrier?

    Choose one answer.

    Show the answer: One question

    Answer: In MealBox's menu, whose captions do not follow his text setting

    The mismatch view looks at the place where a person meets a design. The fixed 12 px captions demand sight that Dev cannot give, and text that follows his setting removes the demand.

Permanent, temporary, situational: one change reaches all three

Microsoft’s guidebook gives an example: a device designed for a person with one arm works just as well for someone whose wrist is injured and for a new parent holding a baby. It calls this the persona spectrum: Microsoft's way of widening one design decision: a demand such as using both hands shuts out people with a permanent disability, a temporary injury and a situational limit, and one change can serve all three.. The same demand, the use of both hands, shuts out a permanent disability, a temporary one and a situational limitation: A limit that comes from a person's setting rather than their body, such as bright sunlight, a loud room, a busy hand or a quiet library. It ends when the situation does., and the same change removes it for all three.

The program below turns the spectrum into a count. It has 15 people cards: for each of five demands a step can make (precise touch, seeing detail, hearing, speech, and memory and time), one person who cannot meet it permanently, one for a while and one because of where they are. Each of the eight steps of a MealBox order flow lists what it demands, and a person can finish the order only if no step demands what they cannot give:

Who can finish MealBox's order flow, step by step Python · order_flow/order_flow.py
# Who can finish MealBox's order flow? Disability as a mismatch between what a step demands and what a person can do.
# The flow, its decisions and the fifteen people cards are invented for this lesson.

# Five things a step can demand, and three people who cannot meet each one: permanent (P), temporary (T), situational (S).
ROWS = {
    "precise touch": ["Meera, tremor in both hands", "Arjun, wrist in a cast", "Kavya, one hand on a bus rail"],
    "seeing detail": ["Dev, low vision", "Nisha, eyes dilated after a test", "Omar, phone in bright sun"],
    "hearing": ["Leela, Deaf since birth", "Sam, an ear infection", "Tara, in a loud kitchen"],
    "speech": ["Iqbal, does not speak", "Rohan, has laryngitis", "Zoya, in a quiet library"],
    "memory and time": ["Anil, a brain injury", "Priya, on strong painkillers", "Joe, cooking with a toddler"],
}
KINDS = "PTS"

# (step, the design decision, what it demands, the change that removes the demand)
FLOW = [
    ("pick a slot", "drag a pin along a time bar", {"precise touch"}, "a list of slot buttons"),
    ("see the status", "a green or red dot only", {"seeing detail"}, "a word and an icon beside the dot"),
    ("pay", "'tap Pay when you hear the chime'", {"hearing"}, "the instruction in words"),
    ("verify the phone", "type the 6-digit code, paste blocked", {"memory and time"}, "allow paste and autofill"),
    ("give the address", "type the address again at payment", {"memory and time"}, "carry it forward, editable"),
    ("finish in time", "the pay screen closes after 60 s", {"precise touch", "memory and time"}, "warn, offer more time"),
    ("read the menu", "12 px light grey captions", {"seeing detail"}, "16 px text at 4.5:1 or more"),
    ("choose a meal", "large buttons with words", set(), "(keep it)"),
]

def shut_out(demands):
    return [(row, i) for row in ROWS if row in demands for i in range(3)]

blocked = set()
for step, decision, demands, _ in FLOW:
    people = shut_out(demands)
    blocked.update(people)
    who = ", ".join(f"{ROWS[r][i].split(',')[0]} ({KINDS[i]})" for r, i in people) or "nobody"
    print(f"{step}: {decision}\n  shuts out {who}")

everyone = [(row, i) for row in ROWS for i in range(3)]
finish = [p for p in everyone if p not in blocked]
print(f"\nSteps that shut someone out: {sum(1 for f in FLOW if f[2])} of {len(FLOW)}")
print(f"People cards blocked at some step: {len(blocked)} of {len(everyone)}")
print("Can finish the whole order:", ", ".join(ROWS[r][i].split(',')[0] for r, i in finish), f"({len(finish)} of {len(everyone)})")

print("\nThe same flow with each demand removed:")
for step, decision, demands, change in FLOW:
    if demands:
        print(f"  {step:<17}{change}")
fixed = [(step, decision, set(), change) for step, decision, _, change in FLOW]
still = {p for f in fixed for p in shut_out(f[2])}
print(f"Can finish after the changes: {len(everyone) - len(still)} of {len(everyone)}")

Output

pick a slot: drag a pin along a time bar
  shuts out Meera (P), Arjun (T), Kavya (S)
see the status: a green or red dot only
  shuts out Dev (P), Nisha (T), Omar (S)
pay: 'tap Pay when you hear the chime'
  shuts out Leela (P), Sam (T), Tara (S)
verify the phone: type the 6-digit code, paste blocked
  shuts out Anil (P), Priya (T), Joe (S)
give the address: type the address again at payment
  shuts out Anil (P), Priya (T), Joe (S)
finish in time: the pay screen closes after 60 s
  shuts out Meera (P), Arjun (T), Kavya (S), Anil (P), Priya (T), Joe (S)
read the menu: 12 px light grey captions
  shuts out Dev (P), Nisha (T), Omar (S)
choose a meal: large buttons with words
  shuts out nobody

Steps that shut someone out: 7 of 8
People cards blocked at some step: 12 of 15
Can finish the whole order: Iqbal, Rohan, Zoya (3 of 15)

The same flow with each demand removed:
  pick a slot      a list of slot buttons
  see the status   a word and an icon beside the dot
  pay              the instruction in words
  verify the phone allow paste and autofill
  give the address carry it forward, editable
  finish in time   warn, offer more time
  read the menu    16 px text at 4.5:1 or more
Can finish after the changes: 15 of 15

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 order_flow.py

Seven of the eight steps shut someone out, and 12 of the 15 cards are blocked somewhere. Only Iqbal, Rohan and Zoya finish, and only because no step asks anyone to speak. Look at the step that shuts out six people: a pay screen that closes after 60 seconds demands both a steady hand and quick recall. After seven changes to existing steps, all 15 can finish.

Fix one step and run it again

Press Edit, give the “verify the phone” step an empty set of demands, set(), and run the program. The count of people who can finish does not move, because “give the address” and “finish in time” still shut out the same three people.

Counting only the permanent column is the usual way teams talk themselves out of this work. The temporary and situational columns are larger: many people break a wrist, lose their voice or cook with a toddler at some point, and almost every phone is used in sunlight. Microsoft’s third principle names the design move: solve for one, extend to many.

Key idea

A flow is only as open as its least open step: a person blocked at one step cannot finish, however open the other steps are.

Checkpoint

Check: Permanent, temporary and situational

  1. Question 1 of 2 In the program's flow, four steps are fixed (pick a slot, see the status, pay and read the menu) and nothing else changes. How many of the 15 people cards can now finish the order?

    Type a number.

    A hint

    List the steps that still demand something, and whose demand each one is.

    Show the answer: Question 1 of 2

    Answer: 9 people

    No step demands seeing or hearing any more, so Dev, Nisha, Omar, Leela, Sam and Tara finish along with Iqbal, Rohan and Zoya: 9 of 15. The touch group is still blocked, because the 60-second pay screen demands a steady hand as well as quick recall, and the memory group is blocked by three steps.

  2. Question 2 of 2 Which of these is a situational limitation, not a permanent or a temporary one?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Reading a phone in bright sunlight

    The persona spectrum sets one demand against three kinds of limit: permanent, temporary and situational. A situational limit belongs to the setting, such as sunlight, noise or a hand that is busy.

Laws point to WCAG, and WCAG 2.2 AA is the target

MealBox is a private business and Ward Desk is a city service, but the laws that cover both lead to the same document. The WCAG: The Web Content Accessibility Guidelines from W3C: testable success criteria at levels A, AA and AAA. WCAG 2.2 is the current version, and content that conforms to it also conforms to 2.1 and 2.0., from W3C, state each requirement as a success criterion: One testable requirement of WCAG, with a number, a name and a conformance level, such as 2.5.8 Target Size (Minimum) at level AA. that can be tested, at one of three conformance level: One of WCAG's three levels, A, AA and AAA. Conforming at a level means meeting every success criterion at that level and at the levels below it.: A, AA and AAA. WCAG 2.2, the current version, has 86 criteria, split by level as 31 A, 24 AA and 31 AAA. The laws in this lesson ask for level AA, which means meeting every A and AA criterion.

Walk through the timeline. Each event is tagged as a standard, which a team designs to, or a law, which says whose products must meet a standard:

Timeline · 10 events in order Accessibility standards and laws, in order Walk through the events in order. The tag says whether an event is a standard, which designers follow, or a law, which points to one.
  1. 2008

    WCAG 2.0 sets testable success criteria standard

    W3C's Web Content Accessibility Guidelines 2.0 give each requirement a success criterion that can be tested, at three levels: A, AA and AAA. The later versions keep this structure, and content that conforms to WCAG 2.2 also conforms to 2.0 and 2.1.

  2. 2016

    India's Rights of Persons with Disabilities Act law

    Section 40 of the Act asks the Central Government to set accessibility rules, including for information and communication technology. Section 46 gives every service provider, government or private, two years from those rules to provide its services in line with them.

  3. 2018

    WCAG 2.1 adds 17 success criteria standard

    The new criteria cover mobile use, low vision and cognitive or learning disabilities, among them reflow at a narrow width, contrast for interface parts and text spacing.

  4. 2019

    The European Accessibility Act is adopted law

    Directive (EU) 2019/882 sets accessibility requirements for products and services sold to consumers, from phones, computers and e-readers to consumer banking, e-books and e-commerce.

  5. 2023

    WCAG 2.2 adds 9 criteria and drops one standard

    Six of the new criteria are at level A or AA: focus not obscured, dragging movements, target size, consistent help, redundant entry and accessible authentication. Criterion 4.1.1 Parsing is now obsolete and removed.

  6. GIGW 3.0

    India's guidelines for government websites and apps standard

    The National Informatics Centre's guidelines for Indian government websites and apps are written to conform with level AA of WCAG 2.1. The RPwD Rules point to these guidelines for websites, and to the Bureau of Indian Standards' IS 17802 for ICT products and services.

  7. 2024

    India's Supreme Court asks for mandatory rules law

    In Rajive Raturi v. Union of India the Court held rule 15(1) of the RPwD Rules beyond the Act, because many of its standards read as advice. It directed the Union Government to set mandatory, non-negotiable rules within three months, in consultation with the people affected.

  8. 2024, US

    A US rule for state and local government sites law

    The US Department of Justice set WCAG 2.1 level AA as the technical standard for the web content and mobile apps of state and local governments under Title II of the Americans with Disabilities Act.

  9. 2025

    The European Accessibility Act applies law

    The Act's requirements apply to the products it covers placed on the EU market, and the services it covers provided to consumers, from 2025 onwards.

  10. 2027 and 2028

    The US compliance dates law

    An interim final rule moved the dates: governments serving 50,000 people or more must comply from 2027, and smaller ones and special districts from 2028.

The timeline has 10 events, from 2008 to 2027 and 2028.

Two patterns stand out. The laws lag the standard: the Indian guidelines for government sites and the US rule both name WCAG 2.1 AA, while WCAG 2.2 has been out since 2023. And a page that meets WCAG 2.2 meets 2.1 and 2.0 as well, so a product designed to 2.2 AA meets every one of these references at once. That is why this track designs to WCAG 2.2 AA.

The rules in India

The Rights of Persons with Disabilities Act, 2016 makes the Central Government responsible for accessibility rules (section 40), and section 46 gives service providers, government and private, two years from those rules to follow them. Rule 15 of the 2017 rules points to the guidelines for Indian government websites, whose current version is GIGW 3.0, and to IS 17802 for ICT products and services. In 2024 the Supreme Court held rule 15(1) beyond the Act and directed the Union to set mandatory rules, so check the department’s page for the rules notified since.

All six new A and AA criteria in WCAG 2.2 describe decisions made in a design file: where keyboard focus lands and what may cover it, how large a target is, whether a drag has an alternative, where help sits, what a form asks twice, and how people sign in. The next lesson, WCAG 2.2 for designers, works through them. This section is an overview for designers, not legal advice: a team shipping in a regulated market reads the law that applies to it.

Checkpoint

Check: Laws and the WCAG target

  1. Question 1 of 2 Ward Desk's city asks for GIGW 3.0, and a US partner of MealBox asks for WCAG 2.1 level AA. Which single design target meets both?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: WCAG 2.2 level AA

    Each version of WCAG 2 keeps the criteria of the version before. Designing to 2.2 AA therefore meets every reference in this lesson that names 2.1 AA, and the team keeps one checklist.

  2. Question 2 of 2 Under India's RPwD Act, how long do service providers have to follow the accessibility rules once they are notified?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Two years from the date the rules are notified

    Section 40 asks for the rules, and section 46 gives every service provider two years from their notification to provide services in line with them.

Inclusion is planned from the first sketch, not audited at the end

A barrier costs least where it is decided. A drag-only slot picker found on a paper prototype costs a new sketch; the same picker found in an audit a week before launch costs a redesign, new code and a moved date. GOV.UK’s Service Manual turns this into work for each phase: in discovery, learn how people with impaired sight, hearing, movement or cognition would use the service; in alpha, design to WCAG 2.2 and arrange the audit early; in beta, run manual and automated checks with each new feature and draft an accessibility statement: A public page that says how accessible a service is, which accessibility problems it still has and how the team plans to fix them..

Step through a plan for Ward Desk, a bilingual complaints service where residents report a broken streetlight or a blocked drain, and watch what each phase adds:

Interactive · stage by stage An accessibility plan for Ward Desk, phase by phase Step through the four phases and watch what each one adds, and where a barrier found late is sent back.
An accessibility plan for Ward Desk, phase by phase, step 7 of 7. Showing Discovery (today's barriers), Alpha (criteria on sketches), Beta (audit and statement), Live (reports feed research). In focus: Live.design barrierDiscoverytoday's barriersAlphacriteria on sketchesBetaaudit and statementLivereports feed research

The drawing shows the whole scene; its 7 steps are listed below.

Every step as text
  1. Discovery finds today's barriers. The team learns how residents with impaired sight, hearing, movement or cognition report a broken streetlight today. Four of the ten residents in the first round are disabled, and the screener asks everyone about access needs. The output is a list of the barriers in the current service.
  2. Alpha checks sketches first. Each sketch is checked against the WCAG 2.2 criteria it touches before anyone tests it: the complaint categories get words as well as icons, and the upload step states its size limit before anyone picks a file.
  3. Tests on people's own phones. Prototype tests include a screen reader user, a voice control user and someone with large text, each on their own phone with their own settings. The team also books the audit now, because an audit takes time to arrange.
  4. Beta checks every feature. Each new feature gets manual and automated checks before it ships, and the team drafts the accessibility statement. The audit runs before the service opens to the public.
  5. A barrier goes back to design. The audit finds that a complaint's status is shown by colour alone. That was a design decision, so it goes back to the design work: the status gets a word and an icon on every screen, instead of a fix in one screen's code that the next screen would repeat.
  6. Beta opens with a statement. The service opens to the public with its accessibility statement, which says how accessible it is, which problems remain and how the team plans to fix them.
  7. Live keeps the loop going. Residents who meet a barrier report it through the statement's contact details. Each report joins the research for the next round of work, so the checks continue after release.

Two habits make the plan work. Recruit disabled people as part of every round of research, asking about access needs in the screener, and let them bring the assistive technology: Hardware or software that a disabled person uses to operate a device, such as a screen reader, a screen magnifier, a switch, voice control or a braille display. they use every day, since a borrowed device with someone else’s settings tests the wrong thing. And write the criteria into the design work itself, so a sketch is checked against them before anyone builds it.

Not every barrier is about the senses or movement. W3C’s guidance on cognitive accessibility: Making content usable for people with cognitive and learning disabilities: clear words, content that is easy to find, processes that do not rely on memory, help when needed, and mistakes that are easy to avoid and fix. sets eight design objectives that read like a checklist for a flow:

  • help people understand what things are and how to use them;
  • help them find what they need;
  • use clear and understandable content;
  • help them avoid mistakes and know how to correct them;
  • help them focus;
  • make sure processes do not rely on memory;
  • provide help and support;
  • support adaptation and personalisation.

One audit as the whole plan

Wrong: no disabled participants in research, then an accessibility audit just before launch. Right: disabled people in every research round, the criteria checked on sketches, and the audit as a final check. An audit finds barriers when they are most expensive to fix, and a barrier the design caused, such as a slot picker that works only by dragging, needs a redesign rather than a patch.

Checkpoint

Check: Planning inclusion by phase

  1. Question 1 of 2 A drag-only slot picker could be found at three points in a project. Where does it cost least to change?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: On the paper prototype in alpha, where the fix is a new sketch

    A barrier costs least where it is decided. A sketch is cheap to redraw; a built and tested flow is not, which is why the criteria are checked on sketches in alpha.

  2. Question 2 of 2 MealBox asks people to type their address again at payment, from memory. Which of W3C's cognitive accessibility objectives does that step work against?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Ensure processes do not rely on memory

    The address was given once already, so the step relies on memory for no reason. WCAG 2.2's criterion 3.3.7 Redundant Entry covers the same step.

Practise

Twelve MealBox decisions are waiting for a barrier audit in the exercise. For each, name the demand that shuts people out, the criterion or objective that covers it, and a change that removes it; the sample tests check that your choices fit together.

Exercise · Easy · Python

Map twelve MealBox decisions to the barriers they make

Twelve MealBox design decisions are listed in DECISIONS in solution.py. Each one makes a demand that some people cannot meet. Fill in MAPPING so that every decision has a tuple of three names:

  1. The demand it makes, one of DEMANDS.
  2. The reference that covers it: a WCAG 2.2 success criterion or one of W3C's cognitive accessibility (COGA) objectives, a key of REFERENCES. A reference must be about the demand you chose: its set in REFERENCES lists the demands it covers.
  3. The change that removes the demand, a key of CHANGES. A change must remove the demand you chose, and each change fits one decision only.

Decision D1 is done as an example. Every demand in DEMANDS belongs to at least one decision. Change only MAPPING.

Starter code · solution.py

"""
Twelve MealBox design decisions, drawn for this exercise. For each one, MAPPING holds
(demand, reference, change): the demand it makes, the WCAG 2.2 criterion or COGA objective
that covers it, and the change that removes the demand. D1 is done as an example.
"""

DEMANDS = ["precise touch", "seeing detail", "hearing", "speech", "memory and time", "understanding"]

# Each reference, with the demands it covers.
REFERENCES = {
    "1.2.2 Captions (Prerecorded)": {"hearing"},
    "1.3.3 Sensory Characteristics": {"hearing", "seeing detail"},
    "1.4.1 Use of Color": {"seeing detail"},
    "1.4.3 Contrast (Minimum)": {"seeing detail"},
    "1.4.4 Resize Text": {"seeing detail"},
    "2.1.1 Keyboard": {"speech", "precise touch"},
    "2.2.1 Timing Adjustable": {"memory and time", "precise touch"},
    "2.5.7 Dragging Movements": {"precise touch"},
    "2.5.8 Target Size (Minimum)": {"precise touch"},
    "3.3.7 Redundant Entry": {"memory and time"},
    "3.3.8 Accessible Authentication (Minimum)": {"memory and time"},
    "COGA 3: Use clear and understandable content": {"understanding"},
}

# Each change, with the demand it removes.
CHANGES = {
    "slot buttons instead of a drag": "precise touch",
    "close buttons of at least 24 by 24 px": "precise touch",
    "a word and an icon beside the colour": "seeing detail",
    "text at 4.5:1 or more against its background": "seeing detail",
    "text sizes that follow the text-size setting": "seeing detail",
    "captions on the video": "hearing",
    "the instruction in words, not a sound": "hearing",
    "typing and touch as well as speech": "speech",
    "a warning, with a way to get more time": "memory and time",
    "allow paste and password managers": "memory and time",
    "carry the address forward, editable": "memory and time",
    "plain plan names, such as 'Weekly veg plan'": "understanding",
}

DECISIONS = {
    "D1": "Choose a delivery slot by dragging a pin along a time bar",
    "D2": "Active and paused plans told apart only by a green or a red dot",
    "D3": "Menu captions in light grey #9CA3AF on white",
    "D4": "A how-to video about pausing a plan, with speech but no captions",
    "D5": "'Tap Pay when you hear the chime'",
    "D6": "The payment screen closes after 60 seconds",
    "D7": "The sign-in code must be typed by hand; paste is blocked",
    "D8": "The delivery address is asked for again on the payment step",
    "D9": "Close buttons of 16 by 16 px in the corners of dialogs",
    "D10": "On the tablet app, a reorder can only be spoken aloud",
    "D11": "Plan names written as puns, such as 'Dal-icious Deal'",
    "D12": "Prices set in a fixed size that ignores the text-size setting",
}

MAPPING = {
    "D1": ("precise touch", "2.5.7 Dragging Movements", "slot buttons instead of a drag"),
}
The sample tests · test_solution.py
"""Sample tests for the map-mealbox-barriers exercise."""

from solution import CHANGES, DECISIONS, DEMANDS, MAPPING, REFERENCES


def test_every_decision_is_mapped():
    missing = sorted(set(DECISIONS) - set(MAPPING))
    extra = sorted(set(MAPPING) - set(DECISIONS))
    assert not missing and not extra, f"missing: {missing}; not a decision: {extra}"


def test_each_mapping_has_three_parts():
    for key, value in MAPPING.items():
        assert isinstance(value, tuple) and len(value) == 3, f"{key}: give a tuple (demand, reference, change)"


def test_names_come_from_the_lists():
    for key, (demand, reference, change) in MAPPING.items():
        assert demand in DEMANDS, f"{key}: '{demand}' is not in DEMANDS"
        assert reference in REFERENCES, f"{key}: '{reference}' is not in REFERENCES"
        assert change in CHANGES, f"{key}: '{change}' is not in CHANGES"


def test_reference_covers_the_demand():
    for key, (demand, reference, _) in MAPPING.items():
        assert demand in REFERENCES[reference], f"{key}: {reference} is not about '{demand}'"


def test_change_removes_the_demand():
    for key, (demand, _, change) in MAPPING.items():
        assert CHANGES[change] == demand, f"{key}: '{change}' removes '{CHANGES[change]}', not '{demand}'"


def test_each_change_fits_one_decision():
    used = [change for _, _, change in MAPPING.values()]
    repeated = sorted({c for c in used if used.count(c) > 1})
    assert not repeated, f"used for more than one decision: {repeated}"


def test_every_demand_appears():
    missing = sorted(set(DEMANDS) - {demand for demand, _, _ in MAPPING.values()})
    assert not missing, f"no decision makes these demands yet: {missing}"
A hint

Work from the person, not the list. For each decision, ask what someone must be able to do to get past it: hold a steady finger, see fine detail, hear a sound, speak, remember something or understand a word. That is the demand. Then pick a reference whose set includes that demand, and a change whose demand is the same.

The sample tests run on this device, in your browser (Pyodide): nothing is sent to mysmartcopilot.com. The first run downloads Python (about 13.5 MB), which is kept for the next runs. A check in your browser is feedback for you, not proof that the code is right for every input.

The questions after it begin with the idea you have answered least well so far:

Practice that adapts to you

Practise this lesson

12 questions about 4 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.

  1. Question 1 of 12 In the mismatch view, what turns a disability into a barrier?

    Choose one answer.

    Show the answer: Question 1 of 12

    Answer: A design that demands something a person cannot give

    Microsoft's principles start from exclusion that comes from mismatches between people and experience. The demand is the part a design can change.

  2. Question 2 of 12 How do accessibility and inclusion differ, as W3C's Web Accessibility Initiative describes them?

    Choose one answer.

    Show the answer: Question 2 of 12

    Answer: Accessibility is about people with disabilities using a product on equal terms; inclusion also covers language, age, connectivity, skills and money

    Accessibility asks whether disabled people can perceive, understand, navigate, interact and contribute. Inclusion asks the same of everyone, whatever their language, age, device, connection, skills or income.

  3. Question 3 of 12 A Ward Desk kiosk asks residents to speak their complaint aloud, and it has no keyboard. Which change does the mismatch view lead to?

    Choose one answer.

    Show the answer: Question 3 of 12

    Answer: Offer typing and touch as well as speech, so speech is one way among several

    The kiosk demands speech. Adding other ways to give the same input removes the mismatch for everyone who cannot meet it, for whatever reason and for however long.

  4. Question 4 of 12 Microsoft's persona spectrum example shows one design serving three people. Which three?

    Choose one answer.

    Show the answer: Question 4 of 12

    Answer: A person with one arm, a person with an arm injury and a new parent holding a baby

    The spectrum takes one demand and shows it shutting out a permanent disability, a temporary injury and a situation, so one design change reaches all three.

  5. Question 5 of 12 In the program's flow, only two steps are fixed, pick a slot and finish in time. How many of the 15 people cards can finish the order?

    Type a number.

    A hint

    Once both steps are fixed, does any step still demand precise touch?

    Show the answer: Question 5 of 12

    Answer: 6 people

    No other step demands precise touch, so Meera, Arjun and Kavya can finish, with Iqbal, Rohan and Zoya: 6 of 15. The memory group is still blocked by the code and the address steps, and the seeing and hearing groups by theirs.

  6. Question 6 of 12 A team can fix only one step of the program's flow this sprint. Which single fix lets the most people cards finish?

    Choose one answer.

    Show the answer: Question 6 of 12

    Answer: Pay, because the chime is the only step that demands hearing

    A person finishes only when no step demands what they cannot give. A fix opens the flow for a group only when it removes that group's last remaining demand, which here is true only of the chime.

  7. Question 7 of 12 Level AA conformance means meeting every success criterion at levels A and AA. How many success criteria is that in WCAG 2.2?

    Type a number.

    A hint

    Add the criteria at level A to those at level AA.

    Show the answer: Question 7 of 12

    Answer: 55 criteria

    WCAG 2.2 has 31 criteria at level A and 24 at level AA, so level AA conformance means meeting 55. The other 31 are at level AAA.

  8. Question 8 of 12 Which statement about the laws and guidelines in this lesson is right?

    Choose one answer.

    Show the answer: Question 8 of 12

    Answer: India's GIGW 3.0 and the US rule for state and local governments both name WCAG 2.1 level AA

    The laws differ in whom they cover and when, but the standard they point to is WCAG, at level AA.

  9. Question 9 of 12 A MealBox engineer says WCAG is a coding standard, so designers can leave it to developers. What does the lesson support saying?

    Choose one answer.

    Show the answer: Question 9 of 12

    Answer: The six new A and AA criteria in WCAG 2.2 are decided in the design file

    A developer can build a drag-only picker perfectly and it still fails 2.5.7. When the design decides a criterion, the design is where it is met.

  10. Question 10 of 12 In GOV.UK's Service Manual, what does a team do about accessibility in alpha?

    Choose one answer.

    Show the answer: Question 10 of 12

    Answer: Design to WCAG 2.2 and start arranging the accessibility audit

    Discovery learns how disabled people would use the service, alpha designs to WCAG 2.2 and books the audit, and beta checks each feature, runs the audit and drafts the statement.

  11. Question 11 of 12 Why does GOV.UK ask participants who use assistive technology to bring their own to a research session?

    Choose one answer.

    Show the answer: Question 11 of 12

    Answer: Their own settings are hard to recreate on another device, so a borrowed one tests the wrong thing

    A session tests how a person uses the product with their own tools. Someone else's device measures how well they cope with unfamiliar settings instead.

  12. Question 12 of 12 Ward Desk's audit finds status chips shown by colour alone, a week before public beta. What does the plan in this lesson do with it?

    Choose one answer.

    Show the answer: Question 12 of 12

    Answer: Send it back to the design work, so the status gets a word and an icon on every screen

    A barrier found late is still sent back to where it was decided. That keeps the fix in one place and keeps the next screen from repeating it.

You can also try MealBox’s status colours in the colour blindness simulator to see why a dot alone carries no meaning for some readers.

Interview questions

Warm-up: how does seeing disability as a mismatch change a designer’s work?

It moves the problem from the person to the design, which is the part a designer controls. Instead of asking how many users have a diagnosis, you ask what each decision demands: two hands, colour vision, hearing, speech, a good memory or quick reactions. Each demand shuts out people who cannot meet it permanently, for a while or in a situation, so the question becomes whether the demand is needed. Often it is not, and removing it is a design change rather than a new feature. The mismatch view also tells you where to look first: the steps every user must pass, because a person blocked at one step cannot finish at all.

Warm-up: which accessibility standard would you design a new product to, and why?

WCAG 2.2 at level AA. It is the current version of WCAG, and a design that meets 2.2 meets 2.1 and 2.0 as well, so one target covers the Indian guidelines for government sites and the US rule for state and local governments, which both name 2.1 AA. Level AA means every A and AA criterion. I would add the criteria that matter most to the product’s users from level AAA where they are cheap, and check the specific law of each market the product ships to.

Two harder questions follow. Before you open either, decide which numbers you would want to see first:

Model answers open with any pass: ₹79 for 1 week ($2.99), one payment that never renews.

  1. Mid to senior

    A MealBox product manager says that only 0.4 % of customers have told support they have a disability, so accessibility work can wait behind the rest of the roadmap. How do you respond, and what do you propose instead?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

  2. Mid to staff

    Ward Desk's team proposes a separate accessible version of its complaint form, linked from the footer, so that the main form can keep its drag-to-place map pin and its photo-only description step. What do you advise?

    Model answer, Pro. First step and follow-ups

Flashcards · 8 cards

Recall it, then check

Say the answer to yourself before you look: recalling it is what makes it stick.

  1. What does it mean to see disability as a mismatch?

    The problem sits where a person meets a design, not in the person. A barrier appears where a design demands something a person cannot give, so the design is where the barrier can be removed, and every design decision adds or removes a mismatch.

  2. How many people live with a significant disability, by the World Health Organization's estimate?

    About 1.3 billion, roughly one person in six or 16 % of the world's population. The figure counts only significant disability; temporary injuries and situations that take an ability away for a while reach many more people.

  3. What is the persona spectrum?

    A way of widening one demand into permanent, temporary and situational cases. A device designed for a person with one arm also serves someone with an injured wrist and a new parent holding a baby, and one change removes the barrier for all three.

  4. Why is a flow only as open as its least open step?

    A person blocked at one step cannot finish, however open the other steps are. So every step people must pass is checked against every demand it makes.

  5. How is WCAG 2.2 organised, and what does level AA mean?

    Each requirement is a testable success criterion at level A, AA or AAA. WCAG 2.2 has 86 criteria: 31 at A, 24 at AA and 31 at AAA. Level AA means meeting every A and every AA criterion.

  6. Why design to WCAG 2.2 AA when the Indian government-site guidelines and the US rule name 2.1 AA?

    The laws lag the standard, and a page that meets WCAG 2.2 meets 2.1 and 2.0 as well. A product designed to 2.2 AA therefore meets every one of those references at once.

  7. Which Indian law and standards set the accessibility target for digital services?

    The Rights of Persons with Disabilities Act makes the Central Government responsible for accessibility rules. Rule 15 of its rules points to GIGW 3.0, the guidelines for government websites, and to IS 17802 for ICT products; the Supreme Court has since directed the Union to set mandatory rules, so check what has been notified.

  8. How is inclusion planned into a project instead of audited at the end?

    Disabled people take part in every research round, the WCAG criteria are checked on sketches, manual and automated checks run with each new feature, and the audit is the last check rather than the only one. A barrier costs least where it is decided: a drag-only picker found on paper costs a new sketch.

Key takeaways

  • Disability becomes a barrier where a design demands what a person cannot give, so the barrier is removed by changing the design.
  • The persona spectrum adds temporary and situational limitations to permanent ones, and one change usually serves all three.
  • A flow is only as open as its least open step, so every step people must pass is checked against every demand it makes.
  • The laws of India, the EU and the US point to WCAG, and designing to WCAG 2.2 AA meets the 2.1 AA they name.
  • Inclusion is planned into every phase: disabled people in research, criteria on sketches, checks with each feature, and an audit as the last check rather than the only one.

Terms in this lesson

accessibility
The degree to which people with disabilities can perceive, understand, navigate and interact with a product, and contribute to it, on equal terms with everyone else.
accessibility statement
A public page that says how accessible a service is, which accessibility problems it still has and how the team plans to fix them.
assistive technology
Hardware or software that a disabled person uses to operate a device, such as a screen reader, a screen magnifier, a switch, voice control or a braille display.
cognitive accessibility
Making content usable for people with cognitive and learning disabilities: clear words, content that is easy to find, processes that do not rely on memory, help when needed, and mistakes that are easy to avoid and fix.
conformance level
One of WCAG's three levels, A, AA and AAA. Conforming at a level means meeting every success criterion at that level and at the levels below it.
inclusive design
A way of designing that starts from the people a product shuts out, learns from their diversity and solves for one group in a way that extends to many. It covers disability as well as language, age, skills, devices and connection.
persona spectrum
Microsoft's way of widening one design decision: a demand such as using both hands shuts out people with a permanent disability, a temporary injury and a situational limit, and one change can serve all three.
situational limitation
A limit that comes from a person's setting rather than their body, such as bright sunlight, a loud room, a busy hand or a quiet library. It ends when the situation does.
success criterion
One testable requirement of WCAG, with a number, a name and a conformance level, such as 2.5.8 Target Size (Minimum) at level AA.
WCAG
The Web Content Accessibility Guidelines from W3C: testable success criteria at levels A, AA and AAA. WCAG 2.2 is the current version, and content that conforms to it also conforms to 2.1 and 2.0.

References

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.