Module 07 Β· Session 15

How Do You Know the Fix Worked?

How do you verify an accessibility claim or proposed correction?

Generative AI can help you inspect code, suggest explanations, and propose corrections. Treat it as a useful assistant whose output requires verification, just as a tool report needs interpretation.

Observe β†’ Claim β†’ Evidence β†’ Test β†’ Fix β†’ Retest

How do you know?

  • Observe β€” What actually happened? Describe behavior before adopting a tool’s explanation.
  • Claim β€” What specific accessibility problem do you think that behavior indicates?
  • Evidence β€” What supports the conclusion? Use WCAG / W3C, official institutional or legal guidance where relevant, direct measurement, or reproducible browser behavior.
  • Test β€” What could establish the claim? Choose keyboard, screen reader, accessibility tree, WAVE, Lighthouse, contrast measurement, zoom/reflow, or direct task completion to fit the question.
  • Fix β€” What change addresses the actual problem?
  • Retest β€” Repeat the relevant test. Was the problem corrected? Does the task still work? Did the change introduce another problem?

One Assistant. One Shared Sample.

Use Microsoft Copilot, ChatGPT, or another comparable generative AI assistant you already use. A free option is sufficient. Use only the fictional Studio Plan sample below; do not upload personal, sensitive, or university-restricted data.

Open the working sample and try saving a plan with the pointer and keyboard. Then copy all the supplied HTML, CSS, and JavaScript into your assistant with the exact initial prompt below. The code includes the behavior; no screenshot is needed. Different responses are expected.

Use this initial prompt exactly:

Review this interface for accessibility issues. For each issue you identify, explain the problem, identify the relevant WCAG success criterion and conformance level where applicable, and recommend a correction.

Append the complete code below to the prompt. The illustration is embedded in the HTML, so the downloaded sample also works offline.

Download Studio Plan HTML

Shared sample code β€” copy all of this into your assistant
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Studio Plan β€” Course Sample</title>
    <style>
        body { margin: 0; background: #f8fafc; color: #0f172a; font: 1rem/1.6 system-ui, sans-serif; }
        main { max-width: 42rem; margin: auto; padding: 2rem 1.25rem; }
        .panel { padding: 1.5rem; background: white; border: 1px solid #cbd5e1; border-radius: 1rem; }
        .heading { font-size: 1.5rem; font-weight: 700; }
        img { display: block; width: 100%; height: auto; }
        label { display: block; font-weight: 600; }
        select { max-width: 100%; padding: .6rem; color: #0f172a; background: white; border: 1px solid #64748b; font: inherit; }
        .save { display: inline-block; margin-top: 1rem; padding: .6rem 1rem; background: #0f172a; color: white; border: 2px solid #0f172a; border-radius: .4rem; cursor: pointer; font: inherit; }
        :focus-visible { outline: 3px solid #0369a1; outline-offset: 4px; }
    </style>
</head>
<body>
<main>
    <p>Campus Media Studio Β· Fictional course sample</p>
    <h1>Plan your studio visit</h1>
    <p>Choose a session. Use the room layout to find the entrance, then save your plan.</p>
    <div class="panel">
        <p class="heading">Choose your session</p>
        <label for="session">Session</label>
        <select id="session">
            <option>Tuesday, 10:00–11:00 AM</option>
            <option>Thursday, 2:00–3:00 PM</option>
        </select>
        <h2>Room layout</h2>
        <img width="600" height="250" alt="Studio diagram" src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='250' viewBox='0 0 600 250'%3E%3Crect width='600' height='250' fill='%23e2e8f0'/%3E%3Crect x='30' y='30' width='400' height='190' fill='white' stroke='%230f172a' stroke-width='3'/%3E%3Ctext x='60' y='75' font-size='24' font-family='sans-serif' fill='%230f172a'%3ERecording studio%3C/text%3E%3Ctext x='60' y='135' font-size='22' font-family='sans-serif' fill='%230f172a'%3EEnter through the east door%3C/text%3E%3Cpath d='M350 170h130m-20-15 20 15-20 15' fill='none' stroke='%230f172a' stroke-width='5'/%3E%3Ctext x='450' y='75' font-size='24' font-family='sans-serif' fill='%230f172a'%3EEast door%3C/text%3E%3C/svg%3E">
        <div class="save" role="button" tabindex="0" onclick="savePlan()">Save</div>
        <p id="save-message"></p>
    </div>
    <p>This sample does not send or store data. Save creates an on-page confirmation.</p>
</main>
<script>
    function savePlan() {
        document.getElementById('save-message').textContent =
            'Plan saved: ' + document.getElementById('session').value;
    }
</script>
</body>
</html>

Investigate Three Claims

For at least three AI claims, use Observe β†’ Claim β†’ Evidence β†’ Test β†’ Fix β†’ Retest. Keep this investigation in your learning notes; it is not another formal assignment.

Reproduce or inspect the claimed behavior. Open the cited WCAG source and check the criterion number, scope, and A/AA/AAA level. Decide whether it supports the claim. Evaluate the correction and retest where applicable.

If the assistant gives fewer than three claims, ask it to assess heading semantics, keyboard activation, image purpose, and save feedback. Keep the original response and this follow-up. Do not manufacture a failure to reach three.

Repeat for each of three claims

  • Observe: steps, expected result, and actual behavior.
  • Claim: exact AI claim and proposed correction.
  • Evidence: source link, criterion and level where applicable, and whether it fits.
  • Test: method and result. What would contradict the claim?
  • Fix / Retest: assess the correction, try it where applicable, and record before/after results or what remains untested.
  • Classification: Supported, Partially supported, or Unsupported β€” explain why.
  • Supported β€” the observation and source support the conclusion.
  • Partially supported β€” something useful was noticed, but the claim overstates, misclassifies, or incompletely explains it.
  • Unsupported β€” the evidence does not establish the claim.

Does This Fix the Button?

An assistant suggests adding role="button" and tabindex="0" to a clickable div. Before revealing the answer, inspect the snippet below. What do those attributes establish? What would you still test?

<div role="button" tabindex="0" onclick="savePlan()">
    Save
</div>
Reveal β€” what does this establish?

β€œSave” supplies a name. role="button" supplies a role. tabindex="0" permits focus. None supplies Enter or Space activation. A pointer-only handler still leaves a keyboard barrier.

Prefer a native button while retaining the action:

<button type="button" onclick="savePlan()">Save</button>

Observe the original behavior; claim a keyboard barrier; check WCAG 2.1.1 (A); test Tab, Enter, and Space; fix the element; retest those keys and pointer activation. Then verify the name, role, and save feedback separately. A plausible snippet alone does not prove success.

Check Your Investigation

Compare your evidence with these observations only after investigating the response. An assistant may find these issues, miss them, or cite an unrelated criterion. Judge its actual claims.

Check Your Work β€” open after investigating three claims

Semantics: β€œChoose your session” looks like a heading but is a paragraph. Inspect its role in the accessibility tree. A heading element can convey that relationship (1.3.1, A); changing font size alone cannot.

Interaction: Save receives focus but does not activate with Enter or Space. A keyboard claim is supported by reproducing that behavior and checking 2.1.1 (A). Replacing it with a native button can address activation; retest the handler.

Context: the illustrated room layout is the only source of the instruction to enter from the east door. Its alt="Studio diagram" does not communicate that information. Inspect the image and task before judging 1.1.1 (A). A generic description is insufficient here; equivalent nearby text could also provide the information.

Correctly implemented: the Session select has a matching explicit label. A claim that every field is unlabeled is unsupported. Confirm the computed name rather than adding redundant ARIA.

Easy to miss: Save updates a visible success message without moving focus or exposing a status role/live region. Inspect the runtime change and assess 4.1.3 (AA). A pre-existing role="status" container is one correction; actual announcement still needs a screen-reader retest. The AI might spot this or might assume visible feedback is enough.

An incorrect criterion can make an otherwise useful observation only partially supported. A confident claim of full conformance is unsupported by this small investigation.

Make One Change. Retest It.

Download the Studio Plan HTML from the sample section. Save an original copy and a working copy. Open the working file in Chrome and edit it in any text editor. Everything is in one file; nothing is installed or submitted by the sample.

Choose one supported correction. Record the original behavior and test steps, edit the working copy, save it, reload the browser, and repeat the same test. Also complete the task with pointer and keyboard to check for regressions.

For a keyboard correction, compare Tab, Enter, and Space before and after. Inspect the accessible name and role in Chrome’s accessibility tree. WAVE or a higher Lighthouse score cannot replace the interaction test. For an announcement claim, verify actual announcement with a screen reader available to you; if you cannot, record that limit instead of claiming success.

Use your original WAVE and Lighthouse reports for context. To scan a local working copy with WAVE, use WAVE’s browser extension. Recheck the affected rule when relevant, then state precisely what the retest establishes.

Prove It

You now have a workflow for both ordinary automation and generative AI. A plausible explanation starts an investigation; evidence and repeatable tests support the conclusion.

AI output is not evidence.

A tool report is not a conformance determination.

Apply the workflow individually.

Challenge 07 β€” Prove It

Review one approved UConn page: explore automated reports, validate findings, test manually, and verify AI claims with WCAG evidence.

Open Challenge β†’