Skip to main content
Glama

Audit Course Accessibility

audit_course_accessibility
Read-only

Scan course content for WCAG 2.1 accessibility issues like missing alt text, poor link text, and heading problems. Receive findings with severity levels and success criteria to fix violations.

Instructions

Scan a course's content (pages, assignments, syllabus, announcements, and optionally quizzes) for structurally-detectable WCAG 2.1 accessibility problems: images missing alt text or with low-quality (filename/generic) alt text, non-descriptive link text ("click here"), adjacent duplicate links, skipped/empty/overlong headings, and tables missing headers, header scope, or captions. Each finding carries a WCAG success criterion and a severity (error = unambiguous failure, advisory = needs human review). Structural checks only — no color-contrast checking (requires rendered theme CSS this tool cannot see) and no list-misuse detection in this version. Pass "quizzes" in include to also scan Classic quiz descriptions/questions and New Quiz item stems (opt-in, off by default). Complements — does not replace — Canvas's own in-app Accessibility Checker (course navigation → Accessibility → Scan Course), which covers the same WCAG areas plus rendered color contrast and offers in-UI remediation. Requires instructor permissions in the course.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
includeNoContent sources to scan. Omit to scan the default four: pages, assignments, syllabus, announcements. `quizzes` is opt-in — pass it explicitly to also scan Classic quiz descriptions/questions and New Quiz item stems.
course_idYesCanvas course ID
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, and the description aligns with these (scanning is read-only, and the tool is open-world in that it doesn't cover everything). The description adds valuable context beyond annotations: it explains the tool's limitations (structural checks only, no color contrast), the severity levels (error vs advisory), and the opt-in behavior for quizzes. It doesn't describe the exact output format, but the absence of an output schema and the rich detail provided justify a 4 rather than a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured paragraph that front-loads the core purpose, then details the specific checks, limitations, opt-in behavior, and relationship to alternatives. Every sentence adds meaningful information without redundancy. It's longer than the TDQS 4.3 example but appropriately so given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple content types, multiple issue categories, opt-in parameter, limitations, and relationship to an alternative), the description is remarkably complete. It covers what the tool does, what it doesn't do, when to use it, and what permissions are needed. The absence of an output schema is compensated by the description's clarity about the types of findings (WCAG criterion + severity).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both parameters are described in the schema). The description adds value by explaining the default behavior (omitting 'include' scans the default four sources) and the opt-in nature of 'quizzes', which goes beyond the schema's enum listing. However, the description doesn't add much about 'course_id' beyond what the schema provides, so a 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scans course content for WCAG 2.1 accessibility issues, listing specific content types and specific problem categories. It distinguishes itself from the sibling audit_course_links by focusing on accessibility rather than links, and from Canvas's in-app checker by noting it complements rather than replaces it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool (to scan for structural accessibility issues), what it does not do (no color-contrast checking, no list-misuse detection), and how it relates to alternatives (complements Canvas's in-app Accessibility Checker). It also specifies the opt-in 'quizzes' parameter and the permission requirement (instructor permissions).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bruchris/canvas-lms-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server