---
name: Canvas Accessibility Auditor
slug: canvas-accessibility-auditor
category: Quality
description: Canvas Accessibility Auditor scans Canvas LMS course content for common WCAG-oriented issues, prioritizes findings, and helps verify fixes after remediation. Use it to audit accessibility, check WCAG issues, and guide page-level repairs.
github: "https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-accessibility-auditor"
language: Python
stars: 226
forks: 76
install: "npx degit https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-accessibility-auditor ~/.claude/skills/canvas-accessibility-auditor"
installs_to: ~/.claude/skills/canvas-accessibility-auditor
source_path: skills/canvas-accessibility-auditor/SKILL.md
collection_size: 8
category_size: 1557
collection_url: "https://dirskills.com/collections/vishalsachdev/canvas-mcp"
added: 2026-09-04T05:24:47.955Z
last_synced: 2026-09-04T05:24:47.955Z
canonical_url: "https://dirskills.com/skills/canvas-accessibility-auditor"
---

# Canvas Accessibility Auditor

Canvas Accessibility Auditor scans Canvas LMS course content for common WCAG-oriented issues, prioritizes findings, and helps verify fixes after remediation. Use it to audit accessibility, check WCAG issues, and guide page-level repairs.

**Install:**

```bash
npx degit https://github.com/vishalsachdev/canvas-mcp/tree/main/skills/canvas-accessibility-auditor ~/.claude/skills/canvas-accessibility-auditor
```

## README

# Canvas Accessibility Auditor

Full accessibility audit cycle for Learning Designers: scan course content, generate a prioritized report, guide remediation of fixable issues, re-scan to verify fixes, and produce an accessibility review 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 Accessibility Review Summary

Produce a final summary suitable for stakeholder reporting:

```
## Accessibility Review 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
- Automated WCAG-oriented checks: Partial pass (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-qc` for comprehensive pre-semester review.
- Run after major content updates or course imports.
- UFIXIT integration depends on your institution having UDOIT/UFIXIT installed.
