-
-
Notifications
You must be signed in to change notification settings - Fork 4
Accessibility Test Guideline
If you love image and slide structure: A Get started in Google slide
For team member:
- Read the task list
- Find something that is not assigned to anyone
- Click on title to read the detailed instructions
- Set
Assignees
to yourself and changeStatus
toTodo
- Change
Status
toIn Progress
and start working on it - Finish or Pending
If you've finished the task, change the
Status
toDone
- Share things you have done with us on Tuesday Hacknight
Or, if you've run into issues, change the
Status
toPending
- Raise the issue at the Tuesday meeting
For tester:
Pages requiring testing are:
The testing is completed in three phrases:
- Test using the automated devtool
- Test manually using screen reader and keyboard navigator and try to find the behavior that does not meet Web Content Accessibility Guidelines (WCAG) standard
- Browse and review the user experience
Phase 1 Test:
- Go to Google sheet
- Find a page that does not have a test report (In testing phases we also list pages that need to be tested in task list so people can assign themselves)
- Follow the tutorial to generate test results
- Follow the tutorial to add the test results into the Google sheet
Phase 2 Test:
- Go to Google sheet
- Find a page that does not have a test report (In testing phases we also list pages that need to be tested in task list so people can assign themselves)
- Follow the tutorial to manually verify some detailed tests that the automated test tool may not notice
- Follow the tutorial to add the test result into the Google sheet
Phase 3 Test:
- Visit Figjam for Whiteboarding
- Edit whiteboard for feedback in UX from ordinary users, and experts besides of the screenshots.
- Follow the guideline to check the web page behavior does not jam with perception
- Follow the tutorial to add the test result into the Google sheet
Phase 4:
- Go to Google sheet
- Follow tutorial to convert all issues recorded into GitHub issues on issue page so developers can follow up
If you can find the edit button on this page
- Refine the guideline for performing Accessibility Testing
If you cannot edit the page
- Create a new issue about Documentation
- Tell us where and what to change
- You are working on a task
- Things do not happen as expected
- You are confused, looking for help
- Raise the problem in Slack or create GitHub issue
Axe DevTools
and WAVE
are two browser extension tools we use for free automated accessibility testing.
- 🪓 Jump to how to test with Axe DevTools
- 👋 Jump to how to test with WAVE
The Axe highlights issues (broken down by categories) that do not meet WCAG guidelines, and for each issue, has a link to a standalone article dedicated to the specific issue.
The detailed run sheet.
To install, visit the respective link for the browser of your choice:
To test the home page of pol.is
for example
- Open browser and go to pol.is
- Open your browser's developer tools (Press
ctrl
+shift
+i
). - Navigate to the
axe DevTools
tab from the more tools (>>
) drop-down. - Fill out the necessary details to get started.
- From the extension start screen, click
Full Page Scan
to run an automated scan of the entire page. - 🕙 Wait
The issues overview contains the total number of issues found along with a breakdown, which act as "filters" to view specific issue types or categories:
- "Automatic Issues": Issues found during the automated scan
- "Needs Review": Potential issues in which axe-core was not able to determine with absolute certainty what were true issues. This can often occur with color contrast calculations for text over background images or complex gradients.
- "Best Practices": Issues that do not necessarily conform to WCAG success criterion but are industry accepted practices that improve the user experience
Issues are grouped by the rules that have been "violated". Each violated rule is expandable, and contains:
- the rule description
- a "Highlight" button (that toggles a highlight around the affected element)
- a "more information" link (link to the dedicated help page for the given rule)
- "Element location" (the generated CSS selector for the element with the accessibility issue)
- Remediation guidance (information on how to fix the issue)
- Go to Access issue log Google spreadsheet
- See if the problem already exists
- In case a problem is not recorded, refer to the guide to add the issue to the spreadsheet
- 🎉 Thank you!
The WAVE browser extension is a free accessibility tool by WebAIM. WAVE provides visual feedback about accessibility by injecting icons onto the page. WAVE facilitates human evaluation and educates about accessibility issues.
The detailed run sheet.
To install, visit the respective link for the browser of your choice:
To test the home page of pol.is
for example
- Open browser and go to pol.is
- Click on the WAVE icon to the right of your browser address bar, or select "WAVE this page" from the context menu.
- 🕙 Wait
WAVE evaluates a page by 6 categories:
- errors (failures to meet WCAG that will impact certain users with disabilities)
- contrast errors (text that does not meet WCAG contrast requirements)
- alerts (potential accessibility issues that requires further human evaluation)
- features (elements that improve accessibility when implemented correctly)
- structural elements (identified elements on the page that give it its structure)
- ARIA (use of ARIA on the page: ensure that labels are used correctly)
The Details tab gives a further breakdown of each category, allowing you to toggle the appearance of the icon types on the page. Each icon type has a reference link (i
button) that provides useful context about the rule/guideline and recommended ways to comply. Greyed-out icons refer to elements that are in the HTML but are hidden by CSS.
- Go to Access issue log Google spreadsheet
- See if the problem already exists
- In case the problem is not recorded, refer to guide to add the issue to the spreadsheet
- 🎉 Thank you!
- In the extension, click on the
Highlight
button, it will toggle a highlight around the affected element(s). - Browse through the affected elements using the
>
icon button. - Go to Google sheet
- Add the nature of the issue under the "Issue title" column.
- Under the "Component/Area" section, add the title of the affected area. This will depend on the nature of the scan you perform-
Full page
orPartial Scan
. - Use the remediation guidance to describe the issue details under the Comments column.
- Select from the drop-down the "source" of the test.
- Enter the name of the affected component under the "Affected element" column.
- Lastly, enter your name under the "Identified by" column.
- And wait to get credited 🎉
- Go to Access issue log Google spreadsheet and download the document.
- Remove problems that are already listed in the GitHub issues
- Share the document with Gemini (Google's powerful AI) and ask it to write issue statement for each of the problem for our GitHub repository with a
title
and aStatement
. - Copy each of the issues
- 🎉 Thank you!
Example prompt for Gemini
The attached file contains a list of accessibility problem we found in our test. Now we need to convert it into GitHub issues and report to developers. Your job is to format the issue statement according to following example.
---
**Description:**
The group and statement selection buttons on the participation page should have the `tablist` role to ensure keyboard navigability. Currently, they are not properly structured for keyboard users.
**Steps to Reproduce:**
1. Navigate to the participation page (e.g. `https://pol.is/4cvkai2ctw`)
2. Attempt to navigate the button groups using only the keyboard.
**Expected Behavior:**
The button groups should be keyboard navigable.
**Actual Behavior:**
The button groups are not properly structured for keyboard navigation.
**Component/Area:** Participation page
**Source:** Other
**Affected Elements:** button groups
ℹ️ If you are using Mac, try your screen reader tutorial and then use a screen reader to access a website (e.g. Canadian Tire) to understand how the software is used. This will be helpful for you to identify accessibility issues using screen read and keyboard navigation tools.
Tools:
- NVDA (recommended) - Free
- JAWS (if available) - USD$85/home license
- Browser Developer Tools (for inspecting elements and focus)
- Automated Accessibility Testing Tools (Axe, WAVE, Lighthouse - Note limitations)
Testing Focus: Keyboard Navigation and Screen Reader Compatibility
The Test Cases.
-
Tab Navigation:
- Verify all interactive elements (buttons, links, form fields, etc.) are reachable using the Tab key. Follow visual sequence where possible. Note any discrepancies.
- Confirm the presence of a clear focus indicator (WCAG 2.4.7) on each element as it receives focus. The indicator should have sufficient contrast (3:1 or higher). Note any missing or insufficient focus indicators.
- Check for any elements skipped during tab navigation (e.g.,
<a>
tags withouthref
attributes). - Verify tabbing order aligns with logical reading order.
- Spacebar and Arrow Keys: Test functionality of Spacebar and Arrow keys where appropriate (e.g., navigating within menus, selecting radio buttons/checkboxes).
- Enter Key: Verify Enter key activates interactive elements (buttons, links, form submissions).
-
Headings:
- Ensure all headings (
<h1>
to<h6>
) are used semantically and reflect the page structure. - Verify screen reader announces headings correctly and in a logical order.
- Check for any non-heading elements incorrectly identified as headings by the screen reader.
- Ensure all headings (
-
Links and Buttons:
- Confirm screen reader announces links and buttons with descriptive text.
- Verify
<a>
tags used for navigation havehref
attributes; use<button>
elements for interactive actions within the page. Confirm consistent usage.
-
Form Fields:
- Ensure all form fields have associated
<label>
elements for clear identification. - Verify screen reader announces labels and input field types correctly.
- Test error handling with screen reader to ensure error messages are conveyed accessibly.
- Confirm character limits on text inputs are announced to screen reader users. Test character limit warnings are accessible.
- Placeholder text should not be used as a replacement for labels.
- Ensure all form fields have associated
-
Images and Graphics:
- Verify all informative images have appropriate alternative text (
alt
attribute) conveying their meaning. Decorative images should have emptyalt
attributes (alt=""
). - Test complex graphics (charts, diagrams) for screen reader accessibility (refer to previous meeting notes with Solomon).
- Verify all informative images have appropriate alternative text (
-
Dynamic Content:
- Ensure all changes to the page content (e.g., loading new information, form validation errors) are announced to screen reader users.
- Verify screen reader announces relevant information when focus changes (e.g., input field descriptions).
- Voice Recognition: Test page functionality using voice recognition software to ensure compatibility and identify potential breakpoints.
- Color Contrast: Check for sufficient color contrast between text and background elements, especially for interactive elements and important information. Consider users with low vision.
- Visual Cues: Ensure interactive elements have clear visual cues (e.g., hover effects, focus indicators) to indicate their interactivity.
- Error Handling: Test error messages for clarity and accessibility.
- Cognitive Load: Consider users who may be easily distracted. Ensure clear and concise language, consistent navigation, and helpful cues to prevent users from getting lost.
- Go to Access issue log Google spreadsheet
- See if the problem already exists
- In case the problem is not recorded, refer to guide to add the issue to the spreadsheet
- 🎉 Thank you!
ℹ️ All content should be easy to understand.
To enable testers of different level in participating the UX Accessibility evaluation, we uses a whiteboard to collect opinions from users and experts.
- A whiteboard containing screen shots of the pages of our latest polis version should be provided. Figjam for Whiteboarding
- Edit whiteboard for feedback in UX from ordinary users, and experts besides of the screenshots.
- Analysis and organize the notes in the whiteboard and build tickets/GitHub issues for development. Analysis will occur as a group and the notes will be synthesized.
🔑 If you are not familier with UX Accessibility evaluation, here are some key criteria
Introduction to Web Accessibility:
- Introduction by Google developers
- Introduction by WebAIM organization
- Over-simplified checklist for accessibility
- [a11y community resource center]https://www.a11yproject.com/)
- Guides by UK government
This section provides links to valuable resources for web accessibility:
- WebAIM Tutorial and Examples: https://webaim.org/resources/quickref/ - Examples and tutorials on web accessibility best practices.
- Chartability: https://chartability.github.io/POUR-CAF/ - A workflow and framework for evaluating the accessibility of data visualizations, systems, and interfaces.
- WCAG Success Criteria (AA/AAA): https://www.w3.org/TR/WCAG21/ - The Web Content Accessibility Guidelines; defines success criteria for accessible web content.
- Mozilla Developer Network (MDN) - Web Accessibility: https://developer.mozilla.org/en-US/docs/Web/Accessibility - Comprehensive documentation on web accessibility from Mozilla.
- Highcharts: http://highcharts.com - A charting library with built-in accessibility features, including keyboard navigation, screen reader support, and options for high contrast themes.
Resources for how to... UX review:
- Screen reader best practice: Screen reader user experience best practices
-
Color blindness in user interface: https://uxdesign.cc/color-blindness-in-user-interfaces-66c27331b858
- Color contrast check on Adobe Photoshop accessibility
- More contrast on design
- Testing voice over on different devices: Assistive technology
- WCAG checker: Generic WCAG Testing Free Site Scan
- A11y on Apple: https://support.apple.com/en-gb/accessibility