
Canvas Accessibility Auditor
- 98 installs
- 176 repo stars
- Updated August 4, 2026
- vishalsachdev/canvas-mcp
Helps with security tasks.
About
canvas-accessibility-auditor is a Claude Code skill for security. It helps solo builders move faster with AI-assisted development.
- canvas-accessibility-auditor
- Security
- AI-coding skill
Canvas Accessibility Auditor by the numbers
- 98 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #1,013 of 2,202 Security skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/vishalsachdev/canvas-mcp --skill canvas-accessibility-auditorAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 98 |
|---|---|
| repo stars | ★ 176 |
| Last updated | August 4, 2026 |
| Repository | vishalsachdev/canvas-mcp ↗ |
What it does
Helps with security tasks.
Files
Canvas Accessibility Auditor
Full accessibility audit cycle for Learning Designers: scan course content, generate prioritized report, guide remediation of fixable issues, re-scan to verify fixes, produce compliance summary.
Prerequisites
- Canvas MCP server must be running and connected.
- Authenticated user must have instructor, TA, or designer role in the target course.
- For UFIXIT integration: the course must have a UFIXIT report page (generated by your institution's accessibility tool).
Steps
1. Identify Target Course
Ask the user which course to audit. Accept a course code, Canvas ID, or course name.
If not specified, prompt:
Which course would you like to audit for accessibility?
2. Scan Course Content
Run two scans in parallel if possible:
Scan A -- Direct content scan:
scan_course_content_accessibility(course_identifier, "pages,assignments")This checks all page and assignment HTML for:
- Images missing alt text (WCAG 1.1.1, Level A)
- Empty headings (WCAG 2.4.6, Level AA)
- Tables missing headers (WCAG 1.3.1, Level A)
- Non-descriptive link text like "click here" (WCAG 2.4.4, Level A)
Scan B -- UFIXIT report (if available):
fetch_ufixit_report(course_identifier)If the UFIXIT page exists, parse it:
parse_ufixit_violations(report_json)3. Generate Prioritized Report
Combine results from both scans. Call format_accessibility_summary if using UFIXIT data.
Present issues sorted by priority:
## Accessibility Audit: [Course Name]
### Summary
- Content scanned: 20 pages, 15 assignments
- Total issues: 12
- Auto-fixable: 8 | Manual review needed: 4
### Level A Violations (must fix)
1. **Missing alt text** -- 5 images across 3 pages
- Page "Week 1 Overview": 2 images
- Page "Lab Instructions": 2 images
- Assignment "Final Project": 1 image
2. **Tables missing headers** -- 2 tables
- Page "Grade Scale": 1 table
- Page "Schedule": 1 table
3. **Non-descriptive links** -- 3 instances of "click here"
- Page "Resources": 2 links
- Page "Week 3 Overview": 1 link
### Level AA Violations (should fix)
4. **Empty headings** -- 2 empty heading elements
- Page "Week 5 Notes": 1 empty h3
- Page "Midterm Review": 1 empty h2
### Manual Review Required
- Color contrast: Cannot be checked automatically (requires visual inspection)
- Video captions: Cannot be verified via API (check in Canvas media player)
- PDF accessibility: Cannot be parsed via API (use Adobe Acrobat checker)4. Guided Remediation
For each auto-fixable issue, walk the user through the fix:
For missing alt text: 1. Call get_page_content(course_identifier, page_url) to retrieve the HTML 2. Identify the <img> tags without alt attributes 3. Ask the user for alt text descriptions (or suggest based on surrounding context) 4. Call edit_page_content(course_identifier, page_url, new_content) with corrected HTML
For non-descriptive links: 1. Retrieve the page content 2. Show the current link: <a href="...">click here</a> 3. Suggest descriptive replacement: <a href="...">Download the syllabus (PDF)</a> 4. Apply fix after user approval
For empty headings: 1. Retrieve the page content 2. Show the empty heading 3. Ask: "Remove this heading, or add text to it?" 4. Apply the chosen fix
For tables missing headers: 1. Retrieve the page content 2. Show the table structure 3. Ask: "Which row/column should be headers?" 4. Convert <td> to <th> elements and apply
Always ask for user confirmation before modifying any page.
5. Re-scan Modified Pages
After remediation, re-run the scan on modified pages only:
scan_course_content_accessibility(course_identifier, "pages")Report: "Fixed 8/12 issues. 4 remaining require manual review."
6. Generate Compliance Summary
Produce a final summary suitable for stakeholder reporting:
## Accessibility Compliance Summary
**Course:** [Course Name]
**Audit Date:** [date]
**Auditor:** AI-assisted audit via Canvas MCP
### Results
- Total content items scanned: 35
- Automated issues found: 12
- Issues remediated: 8
- Issues requiring manual review: 4
- WCAG Level A compliance: Partial (manual review items remain)
### Remediation Actions Taken
- Added alt text to 5 images
- Fixed 3 non-descriptive links
- Removed 2 empty headings
### Outstanding Items
- Color contrast review needed (pages with colored text)
- Video caption verification (embedded videos)
- PDF accessibility check (uploaded PDFs)
### Recommendation
Course content meets automated WCAG 2.1 Level A criteria after remediation.
Manual review of color contrast and multimedia is recommended before publishing.MCP Tools Used
| Tool | Purpose |
|---|---|
scan_course_content_accessibility | Scan pages and assignments for WCAG issues |
fetch_ufixit_report | Retrieve institutional UFIXIT report |
parse_ufixit_violations | Extract structured violations from report |
format_accessibility_summary | Format violations into readable report |
get_page_content | Retrieve page HTML for remediation |
edit_page_content | Apply accessibility fixes to pages |
list_courses | Find available courses |
Example
User: "Run accessibility audit for CS 101"
Agent: Scans all content, generates the prioritized report.
User: "Fix the missing alt text issues"
Agent: Retrieves each affected page, asks for alt text descriptions, applies fixes, re-scans.
Limitations
- Cannot check: Color contrast, video captions, PDF accessibility, audio descriptions, keyboard navigation
- These are flagged as "manual review required" in every report
- Remediation is per-page: Each fix requires a full page content read and write cycle
- No undo: Page edits via the API do not create Canvas revision history -- back up pages before bulk fixes
Notes
- Pairs well with
canvas-course-qcfor comprehensive pre-semester review. - Run after major content updates or course imports.
- UFIXIT integration depends on your institution having UDOIT/UFIXIT installed.