accessibility
Skill1.6k starsChanged 11 days agoMITView on GitHub
Accessibility rules for Perseus UI work: WCAG 2.2 AA, semantic HTML over ARIA, and anti-patterns to avoid. Use whenever building, changing or reviewing UI components, markup, styles or interactions, alongside the wonder-blocks skill.
123 other projects use a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- linx-systems/clamuitheir own version, first seen Nov 9, 2026
- Rojios/everything-claude-codetheir own version, first seen Nov 8, 2026
- ahmadvahidi/skill-atlastheir own version, first seen Nov 8, 2026
- GstMirabal/Token-Optimized-Agent-Pipelinetheir own version, first seen Nov 8, 2026
- DnsQueen/orcinus-skillstheir own version, first seen Nov 8, 2026
- Mehul72/skillstheir own version, first seen Nov 8, 2026
Who's talking about Khan/perseus
- Stack Overflow“Building a Custom Khan Academy”Stack Overflow · Apr 1, 2018 · 3 votes
- Stack Overflow“ReactJS - Have a "main" component that doesn't own it's children?”Stack Overflow · Aug 15, 2014 · 2 votes
- learningequality/kolibri“Bump the khanacademy group across 1 directory with 29 updates”GitHub · Oct 1, 2026 · 1 reactions
- learningequality/kolibri“Read typed Perseus numeric responses using the content language's decimal and grouping separators”GitHub · Sep 25, 2026 · 1 reactions
- learningequality/kolibri“Bump the khanacademy group across 1 directory with 27 updates”GitHub · Sep 1, 2026 · 1 reactions
The biggest 5 of 52 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 52
Talked about on GitHub and Stack Overflow (52 times).
On GitHub · 50
- Oct 1, 2026Bump the khanacademy group across 1 directory with 29 updates — learningequality/kolibri1 reaction · 5 comments
- Sep 25, 2026Read typed Perseus numeric responses using the content language's decimal and grouping separators — learningequality/kolibri1 reaction · 2 comments
- Sep 1, 2026Bump the khanacademy group across 1 directory with 27 updates — learningequality/kolibri1 reaction · 3 comments
- Aug 1, 2026chore(deps): bump the khanacademy group across 1 directory with 24 updates — learningequality/kolibri1 reaction · 3 comments
- Jul 1, 2026Bump the khanacademy group across 1 directory with 26 updates — learningequality/kolibri1 reaction · 1 comment
45 more on GitHub
- Jun 5, 2026Bump the khanacademy group with 24 updates — learningequality/kolibri1 reaction · 3 comments
- Mar 14, 2026Upgrade Perseus from 22.7.0 to 77.9.0 — learningequality/kolibri1 reaction · 11 comments
- Jul 15, 2024Request: add documentation for how to delete a package from a changesets monorepo — changesets/changesets1 reaction · 2 comments
- Oct 31, 2026build(deps): bump the khanacademy group with 29 updates — SunBreaThing441/Global-University0 reactions · 1 comment
- Oct 2, 2026Bump the bumps group across 1 directory with 9 updates — shish/cinema0 reactions
- Oct 1, 2026Bump the bumps group across 1 directory with 13 updates — shish/cinema0 reactions · 1 comment
- Oct 1, 2026Bump the bumps group across 1 directory with 15 updates — shish/cinema0 reactions · 1 comment
- Oct 1, 2026Bump the khanacademy group across 1 directory with 29 updates — taekmarlon/kolibri-fixes0 reactions · 1 comment
- Oct 1, 2026chore(deps): bump the khanacademy group across 1 directory with 29 updates — VLPraneeth/praneeth-kolibri0 reactions · 1 comment
- Sep 17, 2026Bump the khanacademy group across 1 directory with 29 updates — LianaHarris360/kolibri0 reactions · 1 comment
- Sep 12, 2026Bump the bumps group across 1 directory with 14 updates — shish/cinema0 reactions · 1 comment
- Sep 1, 2026Bump the bumps group across 1 directory with 13 updates — shish/cinema0 reactions · 1 comment
- Sep 1, 2026Bump the khanacademy group with 27 updates — taekmarlon/kolibri-fixes0 reactions · 2 comments
- Sep 1, 2026chore(deps): bump the khanacademy group across 1 directory with 27 updates — VLPraneeth/praneeth-kolibri0 reactions · 2 comments
- Sep 1, 2026Bump the khanacademy group with 27 updates — LianaHarris360/kolibri0 reactions · 2 comments
- Aug 3, 2026Bump the bumps group across 1 directory with 5 updates — shish/cinema0 reactions · 1 comment
- Aug 1, 2026Bump the bumps group across 1 directory with 13 updates — shish/cinema0 reactions · 1 comment
- Jul 23, 2026chore(deps): bump the khanacademy group with 24 updates — VLPraneeth/praneeth-kolibri0 reactions · 2 comments
- Jul 9, 2026Template Engine: Eta Dispatcher Pattern — renderArtifact() Rewrite — maemreyo/oh-my-class0 reactions
- Jun 3, 2026Bump the minor-bumps group in /frontend with 10 updates — shish/cinema0 reactions
- Apr 30, 2026Allow Strut to accept sizing strings — Khan/wonder-blocks0 reactions · 7 comments
- Apr 4, 2026Bump the khanacademy group with 21 updates — nickslick03/kolibri-with-plugin0 reactions
- Apr 2, 2026Bump the minor-bumps group in /frontend with 10 updates — shish/cinema0 reactions
- Apr 1, 2026Bump the khanacademy group with 24 updates — learningequality/kolibri0 reactions · 3 comments
- Mar 31, 2026Bump the khanacademy group across 1 directory with 24 updates — learningequality/kolibri0 reactions · 3 comments
- Jan 29, 2026Bump the minor-bumps group across 1 directory with 5 updates — shish/cinema0 reactions
- Jan 28, 2026Bump the minor-bumps group in /frontend with 6 updates — shish/cinema0 reactions · 1 comment
- Jan 19, 2026Bump the khanacademy group with 21 updates — akolson/kolibri0 reactions · 2 comments
- Dec 26, 2025Bump the minor-bumps group in /cinema with 3 updates — shish/cinema0 reactions
- Dec 22, 2025Bump @khanacademy/simple-markdown from 0.13.20 to 2.1.4 — nordcraftengine/discord-api0 reactions
- Nov 19, 2025Bump the khanacademy group across 1 directory with 21 updates — snorkel-marlin-repos/learningequality_kolibri_pr_13099_e3d72fde-f938-4d35-b1a2-38211c537a8f0 reactions
- Nov 12, 2025Bump the khanacademy group across 1 directory with 20 updates — snorkel-marlin-repos/learningequality_kolibri_pr_13099_e3d72fde-f938-4d35-b1a2-38211c537a8f0 reactions · 1 comment
- Oct 29, 2025Bump @khanacademy/simple-markdown from 0.14.0 to 2.1.1 — zk-dragonnu8/Client0 reactions
- Oct 28, 2025Bump @khanacademy/simple-markdown from 0.14.0 to 2.1.1 — Pony-House/Client0 reactions
- Oct 24, 2025Enable provenance when publishing to npm — Khan/wonder-blocks0 reactions · 7 comments
- Oct 16, 2025Bump the khanacademy group with 21 updates — autocode07/learningequality__kolibri.03ed72950 reactions
- Oct 11, 2025Bump the khanacademy group with 21 updates — snorkel-marlin-repos/learningequality_kolibri_pr_13211_fc166a99-c6ee-4647-b108-6bcca7f784050 reactions
- Oct 11, 2025Bump the khanacademy group with 21 updates — snorkel-marlin-repos/learningequality_kolibri_pr_13099_e3d72fde-f938-4d35-b1a2-38211c537a8f0 reactions · 1 comment
- Oct 11, 2025Bump the khanacademy group with 21 updates — snorkel-marlin-repos/learningequality_kolibri_pr_13698_fd39f0b4-ee6e-4edf-a350-f61d28487cef0 reactions
- Oct 11, 2025Bump the khanacademy group with 21 updates — snorkel-marlin-repos/learningequality_kolibri_pr_12944_8ccff02d-ea2d-4984-adcd-aa78d43040080 reactions
- Oct 11, 2025Bump the khanacademy group with 21 updates — snorkel-marlin-repos/learningequality_kolibri_pr_13486_fa78936a-28ec-4a52-a21c-cf12b51973fe0 reactions
- Jul 29, 2025Bump @khanacademy/simple-markdown from 0.14.0 to 2.1.0 — Pony-House/Client0 reactions · 1 comment
- Jul 2, 2025Bump the khanacademy group with 21 updates — learningequality/kolibri0 reactions · 6 comments
- Mar 24, 2025Bump the khanacademy group with 21 updates — koenswings/service-kolibritest0 reactions
- Oct 2, 2024Thousands of false positives that seem to crash the TypeScript extension — microsoft/TypeScript0 reactions
On Stack Overflow · 2
- Apr 1, 2018Building a Custom Khan Academy3 votes
- Aug 15, 2014ReactJS - Have a "main" component that doesn't own it's children?2 votes
Used with
Projects with it also use author-contributions, tool-rename-deprecation and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillauthor-contributions
Identify all files a specific author contributed to on a branch vs its upstream, tracing code through renames. Use when asked who edited what, what code an author contributed, or to audit authorship before a merge. This skill should be run as a subagent — it performs many git operations and returns a concise table.
Also in 7 projects that use this
gitpod-ioSkilltool-rename-deprecation
Ensure renamed built-in tool references preserve backward compatibility. Use when renaming a toolReferenceName, tool set referenceName, or any tool identifier. Run on ANY change to tool registration code. Covers legacyToolReferenceFullNames for tools and legacyFullNames for tool sets.
Also in 5 projects that use this
DepressionCenterSkillproject-preferences
Apply repository-specific preferences when planning, implementing, or reviewing changes in this project.
Also in 6 projects that use this
MicrosoftSkillchat-perf
Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.
Also in 5 projects that use this
DepressionCenterSkillcreate-media-pack
Create a coordinated project branding and media pack with three accessible design options, approved vector artwork, image exports, a branding guide, and README integration. Use when asked for a repository media pack, brand kit, or complete project visual identity.
Also in 5 projects that use this
- +7 more from microsoft
Other versions123 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 123
- microsoft/vscode★ 195ksame name
- elastic/kibana★ 21ksame name
- mozilla-mobile/firefox-ios★ 13ksame name
- midudev/preguntas-entrevista-react★ 7.8ksame name
- gitpod-io/openvscode-server★ 6.2ksame name
- posit-dev/positron★ 4.3ksame name
- legions-developer/evilcharts★ 3.2ksame name
- midudev/la-velada-web-oficial★ 1.9ksame name
- UI5/webcomponents★ 1.8ksame name
- theopenco/llmgateway★ 1.7ksame name
113 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository3 other files it gives its agents.
- AGENTS.mdAGENTS.md
- archaeologySkill
- wonder-blocksSkill
The file
We split this skill into the rules it gives an agent
8 rules. 0 are common, 8 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 112 edited versions we read keep these.
8
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Default styling is not a valid reason to avoid semantic HTML.
- Distinctive: line 18
Before implementing any HTML structure, ask yourself:
- Distinctive: line 22
Always reason from element definitions, not from common usage patterns.
- Distinctive: line 23
Ask: "What is this element defined to represent, and what content does the spec permit?" — not "What have I seen used here?"
- Distinctive: line 24
If a semantic equivalent doesn't exist, try using an existing element and modifying it.
- Distinctive: line 28
When choosing between modified native elements, favor the element that more closely accomplishes the requested behavior.
- Distinctive: line 32
When modifying existing code, it's OK to recommend a different HTML structure if it makes implementing accessibility easier or more …
- Distinctive: line 33
When standard HTML elements do not meet design requirements, build custom interactive elements using the instructions in this document.
“Common” is measured: kept by at least 6 in 10 of the 112 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Instructions for Accessibility Topics
Rules that MUST Be Followed
- Responses and generated code must align with the Web Content Accessibility Guidelines (WCAG) 2.2 AA.
- Strongly favor semantic HTML over adding ARIA attributes.
- Default styling is not a valid reason to avoid semantic HTML.
- "Easier to style" is not a valid reason to avoid semantic HTML.
- The order of preference is: native element → modified native element → ARIA last resort
- Before implementing any HTML structure, ask yourself:
- Is there a native HTML element whose default semantics match what I need?
- What assumptions am I making about this element's allowed content or usage?
- State explicitly what the spec says about this element's permitted content before proceeding.
- Always reason from element definitions, not from common usage patterns.
- Ask: "What is this element defined to represent, and what content does the spec permit?" — not "What have I seen used here?"
- If a semantic equivalent doesn't exist, try using an existing element and modifying it.
- For instance, when trying to create something similar to a radio button but which has differences,
instead of using a
<div with role="radio">to approximate a radio button, consider using a<button aria-pressed="true|false">to create a toggle button that can function similarly to a radio button but is more semantically appropriate and accessible.
- For instance, when trying to create something similar to a radio button but which has differences,
instead of using a
- When choosing between modified native elements, favor the element that more closely accomplishes the requested behavior.
- Elements with native semantics and behaviors that align with assumed usage patterns (i.e. not called out in the instructions) should have the reasoning associated with those semantics and behaviors weighted less when compared to other elements.
- Using a
<div>tag should be a last resort when all other options have failed to accomplish the desired accessibility.
- When modifying existing code, it's OK to recommend a different HTML structure if it makes implementing accessibility easier or more maintainable.
- When standard HTML elements do not meet design requirements, build custom interactive elements using the instructions in this document.
- Meticulously apply ARIA attributes (e.g., aria-pressed, aria-disabled, aria-labelledby) to ensure custom elements are fully accessible to assistive technologies.
- Include detailed comments to explain the rationale behind specific ARIA implementations and accessibility decisions.
Anti-Patterns: NEVER Use These
- Using
<div>tag withroleattribute set when a more appropriate semantic HTML element exists. - Implementing keyboard event handlers for native interactive elements (e.g., adding onKeyDown handlers to a
<button>instead of using the inherent keyboard accessibility).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

