[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DASTZCJAJH4QB0EH74PW8S":3,"skill-same:01M6DASTZCJAJH4QB0EH74PW8S":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":13,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M6DASTZCJAJH4QB0EH74PW8S","accessibility",null,"Use when building or reviewing any user surface for accessibility — keyboard operability, focus management, contrast ratios, semantic markup and screen reader support, hit-target sizing, reduced motion — or when auditing an existing UI against WCAG-level expectations.","tzeusy-org\u002Fai-bootstrap","tzeusy-org","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F141543652?v=4","01M6DAM1AP09H27BYGFY9QCNPB","01M6DAM1F4R187EK11XDN9JZKH",0,"MIT","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-design\u002Fsubskills\u002Faccessibility\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27],"support","ui","WCAG","reader","management","user","use","motion","active","focus","2026-11-10 10:12:30",false,"---\nname: accessibility\ndescription: >\n  Use when building or reviewing any user surface for accessibility — keyboard\n  operability, focus management, contrast ratios, semantic markup and screen\n  reader support, hit-target sizing, reduced motion — or when auditing an\n  existing UI against WCAG-level expectations.\nmetadata:\n  owner: tze\n  authors:\n    - tze\n    - Claude Fable 5\n  status: active\n  last_reviewed: \"2026-07-03\"\n---\n\n# Accessibility\n\nAccessible by default: designed in from the first draft, verified before\nship. The bar is WCAG 2.2 AA as a floor, applied with judgment — a retrofitted\naccessibility pass is itself a finding against the process.\n\n## Use This Skill When\n\n- Building any new user surface (web, TUI, CLI output) — apply during design,\n  not after\n- Auditing an existing UI for keyboard, contrast, or screen-reader gaps\n- Reviewing a PR that adds or changes interactive elements\n- Answering \"is this accessible enough to ship\"\n\nExample trigger phrasings: \"audit accessibility\", \"contrast check\", \"does this\nwork with a screen reader\", \"keyboard navigation is broken\", \"is this WCAG\ncompliant\".\n\n## Do Not Use This Skill For\n\n- Keyboard *ergonomics* beyond operability (chords, palettes) —\n  [discoverability](..\u002Fdiscoverability\u002FSKILL.md)\n- Choosing the palette's meanings — [visual-language](..\u002Fvisual-language\u002FSKILL.md)\n  (this skill constrains those choices)\n\n## Reviewable Expectations\n\n### Keyboard\n\n- Everything operable by keyboard alone: every action reachable, every widget\n  usable, no pointer-only interactions (hover-only menus, drag-only reorder\n  without an alternative).\n- Focus is always visible (a real focus ring — never `outline: none` without\n  replacement), tab order follows reading order, focus never gets trapped.\n- Modals: focus moves in on open, returns to the trigger on close, Esc\n  closes.\n- TUI\u002FCLI count too: interactive terminal UIs need the same complete keyboard\n  paths and visible focus\u002Fselection state.\n\n### Contrast and color\n\n- Text ≥ 4.5:1 against its background (3:1 for large text); interactive\n  component boundaries and icons ≥ 3:1. Verify with a checker, don't eyeball.\n- Both themes verified: a palette that passes in dark mode and fails in light\n  mode fails.\n- Color is never the only signal: pair state colors with an icon, label, or\n  position ([visual-language](..\u002Fvisual-language\u002FSKILL.md) enforces the same\n  rule from the palette side).\n\n### Semantics\n\n- Native elements first: `\u003Cbutton>`, `\u003Ca>`, `\u003Clabel>`, `\u003Ctable>`, headings in\n  order. ARIA only to fill genuine gaps — a `div` with a click handler is a\n  defect, not a style choice.\n- Icon-only controls carry an accessible name (`aria-label` or equivalent);\n  images that inform carry alt text; decorative ones are hidden from the\n  tree.\n- Dynamic results are announced: async completions, optimistic updates, and\n  validation errors reach the screen reader (`aria-live`\u002Fstatus regions), not\n  just the pixels — the snappy patterns in\n  [interaction-speed](..\u002Finteraction-speed\u002FSKILL.md) must stay perceivable\n  without sight.\n\n### Ergonomic floor\n\n- Hit targets ≥ 44×44 CSS px (Apple HIG) \u002F 48dp (Material) on touch; WCAG\n  2.2 AA (2.5.8) sets the hard minimum at 24×24. Generous click areas\n  everywhere (whole row, not just the 12px icon).\n- `prefers-reduced-motion` (or platform equivalent) honored: animations\n  reduce to instant state changes. This skill owns the rule;\n  [visual-language](..\u002Fvisual-language\u002FSKILL.md) defers here.\n- Text resizes to 200% without loss of content or function (1.4.4); content\n  reflows without horizontal scrolling down to a 320px viewport \u002F 400% zoom\n  (1.4.10).\n\n## Review Method\n\n1. Unplug the mouse: complete the primary flows by keyboard alone; note every\n   dead end and invisible focus stop.\n2. Run a contrast check over the token palette (both themes); cite failing\n   pairs with ratios.\n3. Grep interactive markup for defect patterns — `onClick` on non-semantic\n   elements, `outline: none`, icon buttons without labels, missing `alt` —\n   cite file:line.\n4. Screen-reader pass on the primary flow (or static-analysis equivalent when\n   a reader isn't available): names, roles, announcements present.\n\nNo built UI yet? Apply the same expectations to the spec's described\nbehavior; evidence cites the spec section or screen region.\n\nSeverity follows blast radius: an unlabeled primary action outranks a\nlow-contrast footnote. Fix in scope now, per\n[design-bar](..\u002Fdesign-bar\u002FSKILL.md).\n","# Accessibility\n\nAccessible by default: designed in from the first draft, verified before\nship. The bar is WCAG 2.2 AA as a floor, applied with judgment — a retrofitted\naccessibility pass is itself a finding against the process.\n\n## Use This Skill When\n\n- Building any new user surface (web, TUI, CLI output) — apply during design,\n  not after\n- Auditing an existing UI for keyboard, contrast, or screen-reader gaps\n- Reviewing a PR that adds or changes interactive elements\n- Answering \"is this accessible enough to ship\"\n\nExample trigger phrasings: \"audit accessibility\", \"contrast check\", \"does this\nwork with a screen reader\", \"keyboard navigation is broken\", \"is this WCAG\ncompliant\".\n\n## Do Not Use This Skill For\n\n- Keyboard *ergonomics* beyond operability (chords, palettes) —\n  [discoverability](..\u002Fdiscoverability\u002FSKILL.md)\n- Choosing the palette's meanings — [visual-language](..\u002Fvisual-language\u002FSKILL.md)\n  (this skill constrains those choices)\n\n## Reviewable Expectations\n\n### Keyboard\n\n- Everything operable by keyboard alone: every action reachable, every widget\n  usable, no pointer-only interactions (hover-only menus, drag-only reorder\n  without an alternative).\n- Focus is always visible (a real focus ring — never `outline: none` without\n  replacement), tab order follows reading order, focus never gets trapped.\n- Modals: focus moves in on open, returns to the trigger on close, Esc\n  closes.\n- TUI\u002FCLI count too: interactive terminal UIs need the same complete keyboard\n  paths and visible focus\u002Fselection state.\n\n### Contrast and color\n\n- Text ≥ 4.5:1 against its background (3:1 for large text); interactive\n  component boundaries and icons ≥ 3:1. Verify with a checker, don't eyeball.\n- Both themes verified: a palette that passes in dark mode and fails in light\n  mode fails.\n- Color is never the only signal: pair state colors with an icon, label, or\n  position ([visual-language](..\u002Fvisual-language\u002FSKILL.md) enforces the same\n  rule from the palette side).\n\n### Semantics\n\n- Native elements first: `\u003Cbutton>`, `\u003Ca>`, `\u003Clabel>`, `\u003Ctable>`, headings in\n  order. ARIA only to fill genuine gaps — a `div` with a click handler is a\n  defect, not a style choice.\n- Icon-only controls carry an accessible name (`aria-label` or equivalent);\n  images that inform carry alt text; decorative ones are hidden from the\n  tree.\n- Dynamic results are announced: async completions, optimistic updates, and\n  validation errors reach the screen reader (`aria-live`\u002Fstatus regions), not\n  just the pixels — the snappy patterns in\n  [interaction-speed](..\u002Finteraction-speed\u002FSKILL.md) must stay perceivable\n  without sight.\n\n### Ergonomic floor\n\n- Hit targets ≥ 44×44 CSS px (Apple HIG) \u002F 48dp (Material) on touch; WCAG\n  2.2 AA (2.5.8) sets the hard minimum at 24×24. Generous click areas\n  everywhere (whole row, not just the 12px icon).\n- `prefers-reduced-motion` (or platform equivalent) honored: animations\n  reduce to instant state changes. This skill owns the rule;\n  [visual-language](..\u002Fvisual-language\u002FSKILL.md) defers here.\n- Text resizes to 200% without loss of content or function (1.4.4); content\n  reflows without horizontal scrolling down to a 320px viewport \u002F 400% zoom\n  (1.4.10).\n\n## Review Method\n\n1. Unplug the mouse: complete the primary flows by keyboard alone; note every\n   dead end and invisible focus stop.\n2. Run a contrast check over the token palette (both themes); cite failing\n   pairs with ratios.\n3. Grep interactive markup for defect patterns — `onClick` on non-semantic\n   elements, `outline: none`, icon buttons without labels, missing `alt` —\n   cite file:line.\n4. Screen-reader pass on the primary flow (or static-analysis equivalent when\n   a reader isn't available): names, roles, announcements present.\n\nNo built UI yet? Apply the same expectations to the spec's described\nbehavior; evidence cites the spec section or screen region.\n\nSeverity follows blast radius: an unlabeled primary action outranks a\nlow-contrast footnote. Fix in scope now, per\n[design-bar](..\u002Fdesign-bar\u002FSKILL.md).\n",{"name":5,"metadata":33,"description":38},{"owner":34,"status":26,"authors":35,"last_reviewed":37},"tze",[34,36],"Claude Fable 5","2026-07-03","Use when building or reviewing any user surface for accessibility — keyboard operability, focus management, contrast ratios, semantic markup and screen reader support, hit-target sizing, reduced motion — or when auditing an existing UI against WCAG-level expectations.\n","main","c907d6f0bf96bd61b936e8972e0f1c66ebb8148c","skills\u002Fpersonal\u002Fth-design\u002Fsubskills\u002Faccessibility","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap","https:\u002F\u002Fgithub.com\u002Ftzeusy-org","2026-11-10 23:17:25",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add tzeusy-org\u002Fai-bootstrap --skill accessibility",{"tool":51,"command":52},"bunx","bunx skills add tzeusy-org\u002Fai-bootstrap --skill accessibility",{"tool":54,"command":55},"pnpm","pnpm dlx skills add tzeusy-org\u002Fai-bootstrap --skill accessibility","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-design\u002Fsubskills\u002Faccessibility\u002FSKILL.md",true,[59],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"examples\u002Fsample_session_analysis_report.md","REFERENCE","参考文档",4556,"https:\u002F\u002Fgithub.com\u002Fagency-black\u002FSkills\u002Fblob\u002Fmain\u002FCopia de analyze-project\u002Fexamples\u002Fsample_session_analysis_report.md",[66,90,117,132,151,162],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":28},"01M6DAZD21TWH2ET70V9FF75CQ","user-run","Use when a step needs privileges this session lacks (docker, sudo, another user's checkout or secrets, host access) and the owner must run it as tze. Writes a reviewable \u002Fhome\u002Forca\u002F.tmp\u002F\u003Cslug>\u002Frun.sh that impersonates tze (USER_TO_IMPERSONATE overrides), tees timestamped logs plus latest.log and collects artifacts there; Claude presents it with a risk and time brief, then continues from the logs. Triggers: \"I'll run it for you\", \"permission denied on docker.sock\", \"needs sudo\", \"sudo: a password is required\", \"run as tze\", \"\u002Fuser-run\".","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fuser-run\u002FSKILL.md",[],[73,23,74,75,76,24,77,78,79,80,26,81,82,83,84,85,86,87,88,89],"user run","run","docker","logs","host","as","triggers","permission","time","log","artifacts","session","password","access","secrets","risk","brief",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":106,"publishedAt":28},"01M6DAZAHTCBAD2WF0GAHWPST8","requesting-code-review","Use when completing tasks, implementing major features, or before merging to verify work meets requirements","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-workflow\u002Fsubskills\u002Frequesting-code-review\u002FSKILL.md",[96,101],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[107,108,109,110,111,112,26,113,114,24,115,116],"requesting code review","code","review","code review","work","requirements","upstream","superpowers","verify","tasks",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":125,"publishedAt":28},"01M6DAZ7CJ82D81XZB2YHVVY48","receiving-code-review","Use when receiving code review feedback, before implementing suggestions, especially if feedback seems unclear or technically questionable - requires technical rigor and verification, not performative agreement or blind implementation","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-workflow\u002Fsubskills\u002Freceiving-code-review\u002FSKILL.md",[123,124],{"categoryNo":97,"categoryName":98,"taxonomyType":99,"taxonomyTypeDesc":100},{"categoryNo":102,"categoryName":103,"taxonomyType":104,"taxonomyTypeDesc":105},[126,108,109,110,26,113,127,114,24,128,129,130,131],"receiving code review","implementation","code review feedback","technical","feedback","verification",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":28},"01M6DAZ4ER76ADXJ9KRFP7V3Q9","finishing-a-development-branch","Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-workflow\u002Fsubskills\u002Ffinishing-a-development-branch\u002FSKILL.md",[],[139,140,141,142,24,143,111,144,145,146,114,147,148,149,26,113,150,127],"branch","development","finishing a development branch","integrate","decide","how","cleanup","pr","merge","tests","structured","options",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":28},"01M6DAYZFWWW2YPKP89QNQR96H","executing-plans","Use when you have a written implementation plan to execute in a separate session with review checkpoints","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-workflow\u002Fsubskills\u002Fexecuting-plans\u002FSKILL.md",[],[158,159,160,109,161,26,113,127,114,24,84],"plans","executing plans","plan","execute",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":28},"01M6DAYWM2YQHYCK7C35K1D29J","dispatching-parallel-agents","Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies","https:\u002F\u002Fgithub.com\u002Ftzeusy-org\u002Fai-bootstrap\u002Fblob\u002Fmain\u002Fskills\u002Fpersonal\u002Fth-workflow\u002Fsubskills\u002Fdispatching-parallel-agents\u002FSKILL.md",[],[169,170,171,24,114,113,172,26,173,116,174],"parallel agents","parallel","dispatching parallel agents","state","dependencies","shared"]