canvas-accessibility-auditor

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Canvas Accessibility Auditor

Canvas可访问性审计工具

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).
  • Canvas MCP server必须处于运行状态并已连接。
  • 已认证用户必须在目标课程中拥有讲师、助教或设计师角色
  • 若要集成UFIXIT:课程必须拥有UFIXIT报告页面(由您所在机构的可访问性工具生成)。

Steps

操作步骤

1. Identify Target Course

1. 确定目标课程

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?
询问用户需要审计的课程,支持课程代码、Canvas ID或课程名称作为输入。
若用户未指定,提示:
您希望审计哪门课程的可访问性?

2. Scan Course Content

2. 扫描课程内容

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)
若条件允许,并行运行两次扫描:
扫描A -- 直接内容扫描:
scan_course_content_accessibility(course_identifier, "pages,assignments")
该扫描会检查所有页面和作业的HTML是否存在以下问题:
  • 缺少替代文本的图片(WCAG 1.1.1,A级)
  • 空标题(WCAG 2.4.6,AA级)
  • 缺少表头的表格(WCAG 1.3.1,A级)
  • 描述性不足的链接文本(如“点击这里”,WCAG 2.4.4,A级)
扫描B -- UFIXIT报告扫描(若可用):
fetch_ufixit_report(course_identifier)
若UFIXIT页面存在,解析该页面:
parse_ufixit_violations(report_json)

3. Generate Prioritized Report

3. 生成优先级排序报告

Combine results from both scans. Call
format_accessibility_summary
if using UFIXIT data.
Present issues sorted by priority:
undefined
合并两次扫描的结果。若使用UFIXIT数据,调用
format_accessibility_summary
工具。
按优先级排序展示问题:
undefined

Accessibility Audit: [Course Name]

Accessibility Audit: [Course Name]

Summary

Summary

  • Content scanned: 20 pages, 15 assignments
  • Total issues: 12
  • Auto-fixable: 8 | Manual review needed: 4
  • Content scanned: 20 pages, 15 assignments
  • Total issues: 12
  • Auto-fixable: 8 | Manual review needed: 4

Level A Violations (must fix)

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
  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)

Level AA Violations (should fix)

  1. Empty headings -- 2 empty heading elements
    • Page "Week 5 Notes": 1 empty h3
    • Page "Midterm Review": 1 empty h2
  1. Empty headings -- 2 empty heading elements
    • Page "Week 5 Notes": 1 empty h3
    • Page "Midterm Review": 1 empty h2

Manual Review Required

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)
undefined
  • 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)
undefined

4. Guided Remediation

4. 指导式修复

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.
针对每个可自动修复的问题,引导用户完成修复操作:
针对缺少替代文本的问题:
  1. 调用
    get_page_content(course_identifier, page_url)
    获取页面HTML
  2. 识别缺少alt属性的
    <img>
    标签
  3. 向用户索要替代文本描述(或根据上下文给出建议)
  4. 调用
    edit_page_content(course_identifier, page_url, new_content)
    传入修正后的HTML
针对描述性不足的链接问题:
  1. 获取页面内容
  2. 展示当前链接:
    <a href="...">click here</a>
  3. 建议替换为描述性文本:
    <a href="...">Download the syllabus (PDF)</a>
  4. 获得用户确认后应用修复
针对空标题问题:
  1. 获取页面内容
  2. 展示空标题
  3. 询问:“是否移除该标题,或为其添加文本内容?”
  4. 应用用户选择的修复方案
针对缺少表头的表格问题:
  1. 获取页面内容
  2. 展示表格结构
  3. 询问:“哪一行/列应设为表头?”
  4. <td>
    元素转换为
    <th>
    元素并应用
在修改任何页面之前,务必获得用户的确认。

5. Re-scan Modified Pages

5. 重新扫描修改后的页面

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."
修复完成后,仅对修改过的页面重新运行扫描:
scan_course_content_accessibility(course_identifier, "pages")
报告内容:“已修复12个问题中的8个,剩余4个问题需要人工评审。”

6. Generate Compliance Summary

6. 生成合规性总结

Produce a final summary suitable for stakeholder reporting:
undefined
生成一份适合向利益相关者汇报的最终总结:
undefined

Accessibility Compliance Summary

Accessibility Compliance Summary

Course: [Course Name] Audit Date: [date] Auditor: AI-assisted audit via Canvas MCP
Course: [Course Name] Audit Date: [date] Auditor: AI-assisted audit via Canvas MCP

Results

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)
  • 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

Remediation Actions Taken

  • Added alt text to 5 images
  • Fixed 3 non-descriptive links
  • Removed 2 empty headings
  • Added alt text to 5 images
  • Fixed 3 non-descriptive links
  • Removed 2 empty headings

Outstanding Items

Outstanding Items

  • Color contrast review needed (pages with colored text)
  • Video caption verification (embedded videos)
  • PDF accessibility check (uploaded PDFs)
  • Color contrast review needed (pages with colored text)
  • Video caption verification (embedded videos)
  • PDF accessibility check (uploaded PDFs)

Recommendation

Recommendation

Course content meets automated WCAG 2.1 Level A criteria after remediation. Manual review of color contrast and multimedia is recommended before publishing.
undefined
Course content meets automated WCAG 2.1 Level A criteria after remediation. Manual review of color contrast and multimedia is recommended before publishing.
undefined

MCP Tools Used

使用的MCP工具

ToolPurpose
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
工具用途
scan_course_content_accessibility
扫描页面和作业是否存在WCAG问题
fetch_ufixit_report
获取机构的UFIXIT报告
parse_ufixit_violations
从报告中提取结构化的违规信息
format_accessibility_summary
将违规信息格式化为易读的报告
get_page_content
获取页面HTML用于修复操作
edit_page_content
对页面应用可访问性修复
list_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.
用户: "为CS 101课程开展可访问性审计"
Agent: 扫描所有内容,生成优先级排序报告。
用户: "修复缺少替代文本的问题"
Agent: 获取每个受影响的页面,索要替代文本描述,应用修复,重新扫描。

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
  • 无法检测: 颜色对比度、视频字幕、PDF可访问性、音频描述、键盘导航
  • 这些问题会在每份报告中标记为“需要人工评审”
  • 修复按页面进行: 每次修复都需要完整的页面内容读取和写入周期
  • 无法撤销: 通过API进行的页面编辑不会生成Canvas修订历史记录——批量修复前请备份页面

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.
  • canvas-course-qc
    工具配合使用,可实现全面的学期前评审。
  • 应在内容重大更新或课程导入后运行本工具。
  • UFIXIT集成功能依赖于您所在机构已安装UDOIT/UFIXIT工具。