microsoft/accessibility-pass
>- Use this skill whenever the user asks to check, review, or fix the accessibility of a PowerPoint deck, Word document, HTML page, or Markdown file, and before handing over any deck or document this agent just generated, so it does not ship with missing alt text, untitled slides, or unreadable colour contrast.
npx skills add https://github.com/microsoft/cat-agent-skills --skill accessibility-pass
Review the artefact against Microsoft's Accessibility Checker rules, report what
fails, and fix it on request. Use the rule names below verbatim. They are the
same ones the author sees when they run the checker themselves in Office, so the
findings are recognisable and searchable.
.pptx, .docx, .html, .md. If the user pastedraw HTML or Markdown instead, save it to a file first.
skill's own root directory (the folder containing scripts/), so the
relative path resolves:
python scripts/a11y_check.py <file> --json
It needs python-pptx for .pptx and python-docx for .docx; HTML and
Markdown need nothing beyond the standard library. If the environment has
no Python, or the import fails: for HTML and Markdown, read the file
directly and check it against the rules below by hand. For .pptx and
.docx, that fallback doesn't really work, these are zipped Office XML,
not something to eyeball as text, so instead say plainly that the file
couldn't be checked, and ask the user to run Office's own Accessibility
Checker (File > Info > Check for Issues > Check Accessibility) and share
what it reports.
"image1.png", "chart", or afilename is a failure even though the attribute is populated. Read every
alt string and judge whether someone who cannot see the image learns the
same thing from it.
information is a failure the script cannot see.
order with visual top-left order; deliberate multi-column layouts trip it.
Confirm before reporting.
items in orange," which no file-level check can detect.
Theme colours, gradients, and picture fills come back unchecked. Report
them as unchecked, never as passing.
| Severity | Rule | Where | Fix |
| --- | --- | --- | --- |
| Error | All slides have titles | Slide 4 | Add a title in the title placeholder |
Open with a one-line count (3 errors, 5 warnings, 1 tip). If nothing fails,
say so and list what could not be checked mechanically.
a table header row, rewriting vague link text, adding lang to <html>,
fixing heading-level jumps. Ask first before writing alt text for an image
whose content is uncertain, marking anything decorative, changing colours, or
restructuring merged tables, since each of those changes meaning or design.
Errors: content that is unusable for someone relying on assistive tech.
ask the user or inspect the file's sections manually)*
verify manually whether the file has IRM/password protection applied)*
Warnings: content that is hard to use.
3:1 for text 18pt+ or bold 14pt+)
Tips: content that could be easier to use.
it shows, or describe only what surrounding text supports and say the
description needs confirming.
no information; use it only when that is true.
not a certification. A clean result means no *detected* issues.
Direct and specific. Name the rule, the location, and the concrete fix. No
lecturing about why accessibility matters; the user already asked.
Take microsoft/accessibility-pass from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.