Skip to content

Commit 53b80e9

Browse files
accesswatchclaude
andauthored
docs: adopt the Open Source Accessibility Framework (#269)
Add ACCESSIBILITY.md with priorities, contributor expectations, interface requirements, reporting (form and email), severity, response, ways to take part and accommodations, ownership, dependencies and upstream blockers, supported environments, known limitations, progress updates, recognition with consent and reusable materials. Add a dependency-free Markdown accessibility check with a baseline, its tests and a CI workflow; a quarterly accessibility review reminder workflow; and test records for the core flows in admin/ACCESSIBILITY_CORE_FLOWS.md (written, not yet run). Rework the accessibility bug report form (two required fields, severity, email alternative), add a full accessibility checklist to the pull request template, point CONTRIBUTING.md and README.md at the new document, and fix four documentation findings: a skipped heading level in Appendix Z, a second H1 in Appendix L, empty table headers on the registration pages, and a stray line above the CONTRIBUTING.md title. Claude-Session: https://claude.ai/code/session_01PmRBrUTuhzYnQBFxUCN6Vr Co-authored-by: Claude <noreply@anthropic.com>
1 parent e3c752a commit 53b80e9

27 files changed

Lines changed: 2145 additions & 73 deletions
Lines changed: 113 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,115 +1,177 @@
11
name: Accessibility Bug Report
2-
description: Report a keyboard navigation, screen reader, or other accessibility issue
2+
description: Something in this workshop is hard or impossible to use with your setup, including a screen reader, magnifier, braille display or keyboard alone.
33
title: "[A11Y] "
44
labels: ["accessibility", "bug"]
55
assignees: []
66
body:
77
- type: markdown
88
attributes:
99
value: |
10-
Thanks for taking the time to file an accessibility bug report. The more detail you provide, the faster it can be reproduced and fixed. All fields marked as required are needed to triage your report.
10+
Thank you for telling us. Accessibility reports are expertise, not complaints, and partial reports are welcome: fill in what you can. Only the first two fields are required.
1111
12-
- type: dropdown
13-
id: issue-type
14-
attributes:
15-
label: Type of Accessibility Issue
16-
description: Which category best describes what you encountered?
17-
options:
18-
- Keyboard navigation - cannot reach or operate a control with keyboard only
19-
- Screen reader - missing, incorrect, or confusing announcements
20-
- Focus management - focus jumps unexpectedly or is lost
21-
- Heading structure - headings skipped, missing, or in wrong order
22-
- Link / button labels - unlabeled, ambiguous, or "click here"
23-
- Color / contrast - text or controls are hard to distinguish
24-
- Images - missing or inadequate alternative text
25-
- Forms - fields not labeled or error messages not announced
26-
- Time limits - content changes or disappears before I can act
27-
- Other (describe below)
28-
validations:
29-
required: true
12+
You never need to tell us about a disability or diagnosis. If this form is hard to use, or you would rather not post publicly, email support@community-access.org or jeff@jeffbishop.com instead and we will file the issue for you if you want one.
13+
14+
How we triage and respond is in [ACCESSIBILITY.md](https://github.com/Community-Access/git-going-with-github/blob/main/ACCESSIBILITY.md#reporting-accessibility-issues). If the barrier is on GitHub.com or in VS Code itself, report it here anyway: we document workarounds and pass it on.
3015
3116
- type: textarea
3217
id: description
3318
attributes:
34-
label: Describe the Issue
35-
description: What happened? What did you expect to happen instead?
19+
label: What happened
20+
description: What you were trying to do, and what got in the way. Your own words are best.
3621
placeholder: |
3722
When I press Tab on the Issues list page, focus skips the filter buttons
3823
and lands on the first issue title. I expected Tab to move to the filter
3924
buttons before the list.
4025
validations:
4126
required: true
4227

28+
- type: dropdown
29+
id: area
30+
attributes:
31+
label: Where
32+
description: The part of the workshop the barrier is in.
33+
options:
34+
- A page on the workshop website (published HTML)
35+
- A chapter, appendix or challenge as Markdown on GitHub
36+
- The ePub, Word or braille (BRF) download
37+
- A podcast episode, its player or its transcript
38+
- Registration or the student opt-in page
39+
- My Learning Room repository, a challenge issue or a bot comment
40+
- GitHub.com itself, while following the workshop
41+
- VS Code, GitHub Copilot or another tool, while following the workshop
42+
- Something else
43+
validations:
44+
required: true
45+
46+
- type: input
47+
id: page-url
48+
attributes:
49+
label: Page, file or episode
50+
description: Optional. The URL, file name, chapter or episode number.
51+
placeholder: "https://community-access.github.io/git-going-with-github/docs/05-working-with-issues.html"
52+
validations:
53+
required: false
54+
4355
- type: textarea
4456
id: steps
4557
attributes:
46-
label: Steps to Reproduce
47-
description: List the exact steps to reproduce the issue, starting from a known page or state.
58+
label: Steps to reproduce
59+
description: Optional but very helpful. Start from a page or state we can find.
4860
placeholder: |
4961
1. Navigate to github.com/[org]/[repo]/issues
5062
2. Press Tab from the page heading
5163
3. Focus lands on the first issue title
52-
4. The "Label" and "Milestone" filter buttons are never reached by Tab
5364
validations:
54-
required: true
65+
required: false
66+
67+
- type: dropdown
68+
id: issue-type
69+
attributes:
70+
label: Type of accessibility issue
71+
description: Optional. Which category best describes what you encountered?
72+
options:
73+
- Not sure
74+
- Keyboard navigation - cannot reach or operate a control with keyboard only
75+
- Screen reader - missing, incorrect, or confusing announcements
76+
- Focus management - focus jumps unexpectedly or is lost
77+
- Heading structure - headings skipped, missing, or in wrong order
78+
- Link / button labels - unlabeled, ambiguous, or "click here"
79+
- Color / contrast - text or controls are hard to distinguish
80+
- Zoom or reflow - content is lost or overlaps when enlarged
81+
- Images or diagrams - missing or inadequate text alternative
82+
- Audio - missing or inaccurate transcript
83+
- Braille - translation or formatting problem in a BRF file
84+
- Forms - fields not labeled or error messages not announced
85+
- Time limits - content changes or disappears before I can act
86+
- Other (describe above)
87+
default: 0
88+
validations:
89+
required: false
90+
91+
- type: dropdown
92+
id: severity
93+
attributes:
94+
label: How much it gets in your way
95+
description: |
96+
Optional; maintainers confirm severity during triage.
97+
- Critical: I cannot complete the task at all.
98+
- Serious: I can complete it only with real difficulty or a workaround.
99+
- Moderate: it works but is confusing, slow or inconsistent.
100+
- Minor: a small problem with little effect.
101+
options:
102+
- Not sure
103+
- Critical
104+
- Serious
105+
- Moderate
106+
- Minor
107+
default: 0
108+
validations:
109+
required: false
55110

56111
- type: dropdown
57112
id: screen-reader
58113
attributes:
59-
label: Screen Reader
60-
description: Which screen reader were you using?
114+
label: Screen reader or other assistive technology
115+
description: Optional. Add the version in "Anything else" if you know it.
61116
options:
62117
- NVDA (Windows)
63118
- JAWS (Windows)
119+
- Narrator (Windows)
64120
- VoiceOver (macOS)
65121
- VoiceOver (iOS)
66122
- TalkBack (Android)
67-
- Narrator (Windows)
68123
- Orca (Linux)
69-
- Not using a screen reader
124+
- Screen magnifier (ZoomText, Windows Magnifier, macOS Zoom)
125+
- Braille display
126+
- Voice control or dictation
127+
- Keyboard only, no assistive technology
128+
- Not using assistive technology
70129
- Other (describe below)
71130
validations:
72-
required: true
131+
required: false
73132

74133
- type: dropdown
75134
id: browser
76135
attributes:
77136
label: Browser
78-
description: Which browser were you using?
137+
description: Optional.
79138
options:
80139
- Google Chrome
81140
- Mozilla Firefox
82141
- Microsoft Edge
83142
- Apple Safari
143+
- Not in a browser (VS Code, an e-reader, a braille device, a podcast app)
84144
- Other (describe below)
85145
validations:
86-
required: true
146+
required: false
87147

88148
- type: input
89149
id: os
90150
attributes:
91-
label: Operating System and Version
92-
description: For example - Windows 11, macOS Sonoma 14.3, iOS 17.2
151+
label: Operating system and version
152+
description: Optional. For example - Windows 11, macOS 26, iOS 26
93153
placeholder: Windows 11
94154
validations:
95-
required: true
155+
required: false
96156

97157
- type: dropdown
98158
id: wcag
99159
attributes:
100160
label: Relevant WCAG Success Criterion (if known)
101-
description: If you know which WCAG criterion applies, select it. Leave blank if unsure - the team will assess.
161+
description: Optional. Leave blank if unsure - the team will assess.
102162
options:
103163
- "1.1.1 Non-text Content (alt text)"
104164
- "1.3.1 Info and Relationships (semantic structure)"
105165
- "1.3.2 Meaningful Sequence (reading order)"
106166
- "1.4.1 Use of Color"
107167
- "1.4.3 Contrast (Minimum)"
168+
- "1.4.10 Reflow"
108169
- "2.1.1 Keyboard (all functionality via keyboard)"
109170
- "2.1.2 No Keyboard Trap"
110171
- "2.4.3 Focus Order"
111172
- "2.4.6 Headings and Labels"
112173
- "2.4.7 Focus Visible"
174+
- "2.5.3 Label in Name"
113175
- "3.2.2 On Input (no unexpected context changes)"
114176
- "3.3.2 Labels or Instructions"
115177
- "4.1.2 Name, Role, Value (ARIA)"
@@ -121,20 +183,28 @@ body:
121183
- type: textarea
122184
id: impact
123185
attributes:
124-
label: Impact on Your Workflow
186+
label: Impact on your workflow
125187
description: |
126-
How does this issue affect your ability to use this project?
127-
Is there a workaround that lets you continue, or are you fully blocked?
188+
Optional. Is there a workaround that lets you continue, or are you fully blocked?
128189
placeholder: |
129190
I cannot file new issues without mouse assistance because the "New issue"
130191
button is not reachable by keyboard. I am fully blocked from creating issues.
131192
validations:
132-
required: true
193+
required: false
133194

134195
- type: textarea
135196
id: additional
136197
attributes:
137-
label: Additional Context
138-
description: Anything else that might help - screenshots with alt text, screen reader log excerpts, or links to related issues.
198+
label: Anything else
199+
description: Optional. Versions, workarounds you have tried, related issues, a screen reader speech log, or a recording or screenshot with a text description if you are comfortable sharing one.
139200
validations:
140201
required: false
202+
203+
- type: checkboxes
204+
id: follow-up
205+
attributes:
206+
label: Follow-up
207+
description: Optional.
208+
options:
209+
- label: I am willing to test a fix and tell you whether it works for me.
210+
required: false

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
blank_issues_enabled: true
22
contact_links:
3+
- name: "Accessibility: Report a Barrier Without GitHub"
4+
url: https://github.com/Community-Access/git-going-with-github/blob/main/ACCESSIBILITY.md#reporting-accessibility-issues
5+
about: If the issue form is hard to use or you would rather not post publicly, email support@community-access.org. How we triage and respond is in ACCESSIBILITY.md.
36
- name: Support Hub - Ongoing Help and Q&A
47
url: https://github.com/Community-Access/support
58
about: Post-workshop support, troubleshooting, and alumni discussion live in the open support hub.

‎.github/PULL_REQUEST_TEMPLATE.md‎

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,36 @@ Closes #
1919

2020
<!-- Tell the reviewer what to focus on. What should they read first? What is in scope and out of scope? -->
2121

22-
## Accessibility Considerations
22+
## Accessibility Checklist
2323

24-
<!-- Did this change affect keyboard navigation, screen reader experience, heading structure, link labels, or alt text? If so, describe what you checked and what you changed. -->
24+
Accessibility is the reason this workshop exists. Please read the [contributor expectations in ACCESSIBILITY.md](https://github.com/Community-Access/git-going-with-github/blob/main/ACCESSIBILITY.md#contributor-expectations) and check each item that applies to your change. Mark an item N/A when it does not apply (for example, a content-only change has no interface items).
2525

26-
- [ ] Heading levels are sequential (no skipped levels)
27-
- [ ] Link text is descriptive (no "click here" or bare URLs)
28-
- [ ] Any images include meaningful alt text, or `alt=""` if decorative
29-
- [ ] No content relies on color alone to convey meaning
30-
- [ ] Keyboard navigation still works as expected
26+
### Content changes (chapters, appendices, challenges, solutions, README and other docs)
27+
28+
- [ ] The page still has exactly one H1, and heading levels are sequential (no skipped levels)
29+
- [ ] Link text is descriptive (no "click here", "read more" or bare URLs in running text)
30+
- [ ] Any image has meaningful alt text, and any diagram (including ASCII diagrams) has the same information in text nearby
31+
- [ ] Each new table has a header row and a sentence before it saying what it holds
32+
- [ ] Commands and file contents are in fenced code blocks with a language (`bash`, `text`, `markdown`)
33+
- [ ] Steps give a keyboard route, with NVDA, JAWS and VoiceOver commands where they differ
34+
- [ ] Meaning is not conveyed by color, position or styling alone, and there are no emoji
35+
- [ ] Plain language is used; abbreviations are spelled out on first use
36+
- [ ] Any new audio has a transcript, and any linked video has captions
37+
- [ ] I ran `npm run check:accessibility` and `npm run validate:authoritative-sources`, and `npm run build:html` with the regenerated `html/` committed
38+
39+
### Interface changes (site template, search, audio player, registration page, issue forms, bot messages)
40+
41+
- [ ] Everything interactive is reachable and operable with the keyboard alone, in a logical order, with no trap
42+
- [ ] Focus is visible on every control; no focus outline was removed without an equally visible replacement
43+
- [ ] Every control has a label, and its accessible name contains its visible text
44+
- [ ] Contrast is sufficient in the light, dark and high contrast themes, and color is not the only indicator
45+
- [ ] Content reflows at 320 CSS pixels wide and works at 200% zoom
46+
- [ ] I checked the change with a screen reader at least once (say which one and which browser under Testing)
47+
- [ ] A new dependency that affects what learners meet has a short accessibility review in this pull request
48+
49+
### Accessibility notes
50+
51+
<!-- Optional: what you checked, known limitations, or accessibility items left for a follow-up issue. -->
3152

3253
## Testing
3354

‎.github/README.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ These workflows operate on this repository itself:
1919
| `build-epub.yml` | Builds ePub version of workshop content |
2020
| `create-release.yml` | Creates tagged releases |
2121
| `deploy-pages.yml` | Deploys content to GitHub Pages |
22+
| `docs-accessibility.yml` | Runs the documentation accessibility check on Markdown changes (see ACCESSIBILITY.md) |
23+
| `accessibility-review-reminder.yml` | Opens the quarterly accessibility progress update and review issue |
2224
| `generate-diagram-svgs.yml` | Converts diagram sources to SVG |
2325
| `registration.yml` | Processes student registration |
2426
| `sync-docs-to-wiki.yml` | Syncs documentation to the repository wiki |

0 commit comments

Comments
 (0)