This guide helps you test the PyPI download charts for colorblind accessibility.
- Navigate to https://deploy-preview-123--cosmic-klepon-3c693c.netlify.app/
- Wait for the "PyPI Download Trends" chart to load
- Click the "By Package" button to switch to the multi-line chart
- Press
F12to open Chrome DevTools - Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Type "Show Rendering" and press Enter
- Scroll down to "Emulate vision deficiencies"
- Select "Protanopia" from the dropdown
- Verify you can distinguish all package lines
- Check that line patterns are clearly visible
- Hover over lines to verify highlighting works
- Select "Deuteranopia" from the dropdown
- Verify all lines are distinguishable
- Check colors don't appear identical
- Test legend clicking to toggle packages
- Select "Tritanopia" from the dropdown
- Verify line differentiation is maintained
- Check tooltip readability
- Select "Achromatopsia" from the dropdown
- Critical Test: Without any color, can you still distinguish lines?
- Verify line patterns (solid, dashed, dotted) are clearly different
- Check that tooltips show package names clearly
With vision deficiency emulation still active:
-
Hover Test:
- Hover over each line
- Verify other lines fade out (become dimmer)
- Verify you can identify which line you're hovering over
-
Legend Test:
- Click each package name in the legend
- Verify the line disappears/reappears
- Verify you can isolate specific packages
-
Tooltip Test:
- Hover over various data points
- Verify package name is clearly shown
- Check that total downloads are displayed
- Confirm tooltips are readable in all vision modes
- Navigate to the chart page
- Press
F12to open Developer Tools - Click the "Accessibility" tab
- Click "Simulate" dropdown
- Select each vision deficiency type
- Verify line distinguishability
- Test interactivity (hover, legend clicks)
Safari doesn't have built-in colorblind simulation, but you can:
- Test the interactive features (hover, legend clicks)
- Verify line patterns are visible
- Check tooltip functionality
For color testing, use Chrome or Firefox.
The chart is accessible if you can answer "Yes" to all these questions:
- Line Distinction: Can you identify at least 3-4 different lines without color?
- Pattern Clarity: Are the dash patterns (solid, dashed, dotted) clearly visible?
- Hover Feedback: When hovering, does the active line stand out clearly?
- Legend Clarity: Can you match legend entries to chart lines?
- Tooltip Utility: Do tooltips help identify which package you're examining?
- Toggle Function: Can you successfully show/hide packages via legend clicks?
The chart has accessibility issues if:
- All lines appear identical or nearly identical
- You cannot tell which line is which without color
- Hover highlighting doesn't work or is too subtle
- Legend doesn't help identify lines
- Tooltips don't clearly show package names
- You need to guess which line represents which package
Use this guide to identify packages by pattern:
| Visual Pattern | Package Name |
|---|---|
| ━━━━━━━━━━━━ (Solid, thick) | openadapt |
| ━ ━ ━ ━ ━ ━ (Dashed) | openadapt-ml |
| ······ (Dotted) | openadapt-capture |
| ━·━·━·━· (Dash-dot) | openadapt-evals |
| ━━ ━━ ━━ (Long dash) | openadapt-viewer |
| ━··━··━·· (Dash-dot-dot) | openadapt-grounding |
| ━·━·━·━ (Mixed) | openadapt-retrieval |
| ━━ ━━ ━━ (Medium dash) | openadapt-privacy |
The Tol Bright colors used (for reference):
| Package | Color | Hex Code | Notes |
|---|---|---|---|
| openadapt | Blue | #4477AA | Primary package |
| openadapt-ml | Red | #EE6677 | Not problematic with green |
| openadapt-capture | Green | #228833 | Safe green shade |
| openadapt-evals | Yellow | #CCBB44 | High contrast |
| openadapt-viewer | Cyan | #66CCEE | Distinct from blue |
| openadapt-grounding | Purple | #AA3377 | Unique hue |
| openadapt-retrieval | Orange | #EE7733 | Warm accent |
| openadapt-privacy | Grey | #BBBBBB | Neutral |
If you find accessibility issues:
- Screenshot: Take a screenshot showing the problem
- Vision Mode: Note which vision deficiency mode revealed the issue
- Browser: Specify browser and version
- Description: Describe what's unclear or indistinguishable
- Impact: Rate severity (Critical/High/Medium/Low)
Issue: Lines appear identical in Achromatopsia mode
Vision Mode: Achromatopsia (no color)
Browser: Chrome 120.0
Description: openadapt-ml and openadapt-capture lines look the same
Severity: High
Screenshot: [attached]
The chart meets accessibility standards if:
✅ All 8 packages are distinguishable in Achromatopsia mode (no color) ✅ Hover highlighting clearly indicates the active line ✅ Legend click-to-toggle works smoothly ✅ Tooltips show package names prominently ✅ Line patterns are visible and distinct ✅ No reliance on color alone for information
- WCAG 2.1 Use of Color Guideline
- Tol Bright Color Scheme Research
- Colorblind Accessibility Best Practices
- Chart.js Accessibility Documentation
For developers, here's how to test locally:
# Start dev server
cd /Users/abrichr/oa/src/openadapt-web
npm run dev
# Open in browser
open http://localhost:3000
# Then use Chrome DevTools as described aboveConsider adding automated accessibility tests:
// Example using jest-axe
import { axe } from 'jest-axe';
import { render } from '@testing-library/react';
import PyPIDownloadChart from './PyPIDownloadChart';
test('chart should not have accessibility violations', async () => {
const { container } = render(<PyPIDownloadChart />);
const results = await axe(container);
expect(results).toHaveNoViolations();
});If you have questions about these accessibility improvements, contact the development team or file an issue on GitHub.