[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CT4M7Z2PR6HES54PYYQ2C0":3,"skill-same:01M6CT4M7Z2PR6HES54PYYQ2C0":63},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":45,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6CT4M7Z2PR6HES54PYYQ2C0","fixing-accessibility",null,"Audit and fix HTML accessibility issues including ARIA labels, keyboard navigation, focus management, color contrast, and form errors. Use when adding interactive controls, forms, dialogs, or reviewing WCAG compliance.","Sam-06060\u002Fjarvis-assistant","Sam-06060","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F208600848?v=4","01M6CRKT7C7FXD21V6HXF293S0","Samson Frank Ganta","01M6CRKTBEKYFD8YX5Z1GT99EE",6,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Ffixing-accessibility\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"accessibility","fixing accessibility","issues","audit","compliance","WCAG","interactive","management","fix","use","html","navigation","aria","community","forms","focus","2026-11-10 10:12:30",false,"---\nname: fixing-accessibility\ndescription: Audit and fix HTML accessibility issues including ARIA labels, keyboard navigation, focus management, color contrast, and form errors. Use when adding interactive controls, forms, dialogs, or reviewing WCAG compliance.\nrisk: unknown\nsource: community\n---\n\n# fixing-accessibility\n\nFix accessibility issues.\n\n## how to use\n\n- `\u002Ffixing-accessibility`\n  Apply these constraints to any UI work in this conversation.\n\n- `\u002Ffixing-accessibility \u003Cfile>`\n  Review the file against all rules below and report:\n  - violations (quote the exact line or snippet)\n  - why it matters (one short sentence)\n  - a concrete fix (code-level suggestion)\n\nDo not rewrite large parts of the UI. Prefer minimal, targeted fixes.\n\n## When to Use\nReference these guidelines when:\n- adding or changing buttons, links, inputs, menus, dialogs, tabs, dropdowns\n- building forms, validation, error states, helper text\n- implementing keyboard shortcuts or custom interactions\n- working on focus states, focus trapping, or modal behavior\n- rendering icon-only controls\n- adding hover-only interactions or hidden content\n\n## rule categories by priority\n\n| priority | category | impact |\n|----------|----------|--------|\n| 1 | accessible names | critical |\n| 2 | keyboard access | critical |\n| 3 | focus and dialogs | critical |\n| 4 | semantics | high |\n| 5 | forms and errors | high |\n| 6 | announcements | medium-high |\n| 7 | contrast and states | medium |\n| 8 | media and motion | low-medium |\n| 9 | tool boundaries | critical |\n\n## quick reference\n\n### 1. accessible names (critical)\n\n- every interactive control must have an accessible name\n- icon-only buttons must have aria-label or aria-labelledby\n- every input, select, and textarea must be labeled\n- links must have meaningful text (no “click here”)\n- decorative icons must be aria-hidden\n\n### 2. keyboard access (critical)\n\n- do not use div or span as buttons without full keyboard support\n- all interactive elements must be reachable by Tab\n- focus must be visible for keyboard users\n- do not use tabindex greater than 0\n- Escape must close dialogs or overlays when applicable\n\n### 3. focus and dialogs (critical)\n\n- modals must trap focus while open\n- restore focus to the trigger on close\n- set initial focus inside dialogs\n- opening a dialog should not scroll the page unexpectedly\n\n### 4. semantics (high)\n\n- prefer native elements (button, a, input) over role-based hacks\n- if a role is used, required aria attributes must be present\n- lists must use ul or ol with li\n- do not skip heading levels\n- tables must use th for headers when applicable\n\n### 5. forms and errors (high)\n\n- errors must be linked to fields using aria-describedby\n- required fields must be announced\n- invalid fields must set aria-invalid\n- helper text must be associated with inputs\n- disabled submit actions must explain why\n\n### 6. announcements (medium-high)\n\n- critical form errors should use aria-live\n- loading states should use aria-busy or status text\n- toasts must not be the only way to convey critical information\n- expandable controls must use aria-expanded and aria-controls\n\n### 7. contrast and states (medium)\n\n- ensure sufficient contrast for text and icons\n- hover-only interactions must have keyboard equivalents\n- disabled states must not rely on color alone\n- do not remove focus outlines without a visible replacement\n\n### 8. media and motion (low-medium)\n\n- images must have correct alt text (meaningful or empty)\n- videos with speech should provide captions when relevant\n- respect prefers-reduced-motion for non-essential motion\n- avoid autoplaying media with sound\n\n### 9. tool boundaries (critical)\n\n- prefer minimal changes, do not refactor unrelated code\n- do not add aria when native semantics already solve the problem\n- do not migrate UI libraries unless requested\n\n## common fixes\n\n```html\n\u003C!-- icon-only button: add aria-label -->\n\u003C!-- before --> \u003Cbutton>\u003Csvg>...\u003C\u002Fsvg>\u003C\u002Fbutton>\n\u003C!-- after -->  \u003Cbutton aria-label=\"Close\">\u003Csvg aria-hidden=\"true\">...\u003C\u002Fsvg>\u003C\u002Fbutton>\n\n\u003C!-- div as button: use native element -->\n\u003C!-- before --> \u003Cdiv onclick=\"save()\">Save\u003C\u002Fdiv>\n\u003C!-- after -->  \u003Cbutton onclick=\"save()\">Save\u003C\u002Fbutton>\n\n\u003C!-- form error: link with aria-describedby -->\n\u003C!-- before --> \u003Cinput id=\"email\" \u002F> \u003Cspan>Invalid email\u003C\u002Fspan>\n\u003C!-- after -->  \u003Cinput id=\"email\" aria-describedby=\"email-err\" aria-invalid=\"true\" \u002F> \u003Cspan id=\"email-err\">Invalid email\u003C\u002Fspan>\n```\n\n## review guidance\n\n- fix critical issues first (names, keyboard, focus, tool boundaries)\n- prefer native HTML before adding aria\n- quote the exact snippet, state the failure, propose a small fix\n- for complex widgets (menu, dialog, combobox), prefer established accessible primitives over custom behavior","# fixing-accessibility\n\nFix accessibility issues.\n\n## how to use\n\n- `\u002Ffixing-accessibility`\n  Apply these constraints to any UI work in this conversation.\n\n- `\u002Ffixing-accessibility \u003Cfile>`\n  Review the file against all rules below and report:\n  - violations (quote the exact line or snippet)\n  - why it matters (one short sentence)\n  - a concrete fix (code-level suggestion)\n\nDo not rewrite large parts of the UI. Prefer minimal, targeted fixes.\n\n## When to Use\nReference these guidelines when:\n- adding or changing buttons, links, inputs, menus, dialogs, tabs, dropdowns\n- building forms, validation, error states, helper text\n- implementing keyboard shortcuts or custom interactions\n- working on focus states, focus trapping, or modal behavior\n- rendering icon-only controls\n- adding hover-only interactions or hidden content\n\n## rule categories by priority\n\n| priority | category | impact |\n|----------|----------|--------|\n| 1 | accessible names | critical |\n| 2 | keyboard access | critical |\n| 3 | focus and dialogs | critical |\n| 4 | semantics | high |\n| 5 | forms and errors | high |\n| 6 | announcements | medium-high |\n| 7 | contrast and states | medium |\n| 8 | media and motion | low-medium |\n| 9 | tool boundaries | critical |\n\n## quick reference\n\n### 1. accessible names (critical)\n\n- every interactive control must have an accessible name\n- icon-only buttons must have aria-label or aria-labelledby\n- every input, select, and textarea must be labeled\n- links must have meaningful text (no “click here”)\n- decorative icons must be aria-hidden\n\n### 2. keyboard access (critical)\n\n- do not use div or span as buttons without full keyboard support\n- all interactive elements must be reachable by Tab\n- focus must be visible for keyboard users\n- do not use tabindex greater than 0\n- Escape must close dialogs or overlays when applicable\n\n### 3. focus and dialogs (critical)\n\n- modals must trap focus while open\n- restore focus to the trigger on close\n- set initial focus inside dialogs\n- opening a dialog should not scroll the page unexpectedly\n\n### 4. semantics (high)\n\n- prefer native elements (button, a, input) over role-based hacks\n- if a role is used, required aria attributes must be present\n- lists must use ul or ol with li\n- do not skip heading levels\n- tables must use th for headers when applicable\n\n### 5. forms and errors (high)\n\n- errors must be linked to fields using aria-describedby\n- required fields must be announced\n- invalid fields must set aria-invalid\n- helper text must be associated with inputs\n- disabled submit actions must explain why\n\n### 6. announcements (medium-high)\n\n- critical form errors should use aria-live\n- loading states should use aria-busy or status text\n- toasts must not be the only way to convey critical information\n- expandable controls must use aria-expanded and aria-controls\n\n### 7. contrast and states (medium)\n\n- ensure sufficient contrast for text and icons\n- hover-only interactions must have keyboard equivalents\n- disabled states must not rely on color alone\n- do not remove focus outlines without a visible replacement\n\n### 8. media and motion (low-medium)\n\n- images must have correct alt text (meaningful or empty)\n- videos with speech should provide captions when relevant\n- respect prefers-reduced-motion for non-essential motion\n- avoid autoplaying media with sound\n\n### 9. tool boundaries (critical)\n\n- prefer minimal changes, do not refactor unrelated code\n- do not add aria when native semantics already solve the problem\n- do not migrate UI libraries unless requested\n\n## common fixes\n\n```html\n\u003C!-- icon-only button: add aria-label -->\n\u003C!-- before --> \u003Cbutton>\u003Csvg>...\u003C\u002Fsvg>\u003C\u002Fbutton>\n\u003C!-- after -->  \u003Cbutton aria-label=\"Close\">\u003Csvg aria-hidden=\"true\">...\u003C\u002Fsvg>\u003C\u002Fbutton>\n\n\u003C!-- div as button: use native element -->\n\u003C!-- before --> \u003Cdiv onclick=\"save()\">Save\u003C\u002Fdiv>\n\u003C!-- after -->  \u003Cbutton onclick=\"save()\">Save\u003C\u002Fbutton>\n\n\u003C!-- form error: link with aria-describedby -->\n\u003C!-- before --> \u003Cinput id=\"email\" \u002F> \u003Cspan>Invalid email\u003C\u002Fspan>\n\u003C!-- after -->  \u003Cinput id=\"email\" aria-describedby=\"email-err\" aria-invalid=\"true\" \u002F> \u003Cspan id=\"email-err\">Invalid email\u003C\u002Fspan>\n```\n\n## review guidance\n\n- fix critical issues first (names, keyboard, focus, tool boundaries)\n- prefer native HTML before adding aria\n- quote the exact snippet, state the failure, propose a small fix\n- for complex widgets (menu, dialog, combobox), prefer established accessible primitives over custom behavior",{"name":5,"risk":40,"source":32,"description":7},"unknown","main","a50a3aa6b39fb0e1b7db88bef1bfc9c93606e126","modules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Ffixing-accessibility",0,"https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant","https:\u002F\u002Fgithub.com\u002FSam-06060","Mobile Application Developer | Kotlin | Flutter, KMP, Swfit, Android,Swift UI | Building at Saar It Resources | Creator of Jarvis (AI Assistant)","2026-06-23 05:13:38",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add Sam-06060\u002Fjarvis-assistant --skill fixing-accessibility",{"tool":55,"command":56},"bunx","bunx skills add Sam-06060\u002Fjarvis-assistant --skill fixing-accessibility",{"tool":58,"command":59},"pnpm","pnpm dlx skills add Sam-06060\u002Fjarvis-assistant --skill fixing-accessibility","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Ffixing-accessibility\u002FSKILL.md",true,[],[64,77,93,119,138,165],{"skillNo":65,"name":66,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":74,"publishedAt":35},"01M6GDRVS6FXX3ESH0C9DW01C0","test_skill","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fscratch\u002Ftest_skill\u002FSKILL.md",[69],{"categoryNo":70,"categoryName":71,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[75,76],"Test Skill","test",{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":35},"01M6GDRQ40HX22MA6XWC31RHHK","zustand-store-ts","Create Zustand stores following established patterns with proper TypeScript types and middleware.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzustand-store-ts\u002FSKILL.md",[],[84,85,86,87,88,89,90,32,91,92],"zustand store ts","zustand","store","with","types","middleware","patterns","create","typescript",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":102,"publishedAt":35},"01M6GDRKEA0WE670SPFWX5GKCN","zoom-automation","Automate Zoom meeting creation, management, recordings, webinars, and participant tracking via Rube MCP (Composio). Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoom-automation\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000023","Skill与智能体开发",[103,104,105,106,107,108,109,110,111,112,113,114,115,116,32,117,26,118],"automation","zoom automation","zoom","first","Tools","search","MCP","via","meeting","automate","critical","creation","webinars","composio","recordings","tracking",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":126,"publishedAt":35},"01M6GDRFS1452PC71JQ38S24HR","zoho-crm-automation","Automate Zoho CRM tasks via Rube MCP (Composio): create\u002Fupdate records, search contacts, manage leads, and convert leads. Always search tools first for current schemas.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzoho-crm-automation\u002FSKILL.md",[125],{"categoryNo":100,"categoryName":101,"taxonomyType":72,"taxonomyTypeDesc":73},[127,103,128,129,130,131,132,32,108,133,116,134,113,112,107,135,91,136,109,137],"crm automation","zoho crm","crm","zoho crm automation","zoho","leads","contacts","records","update","tasks","manage",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":147,"publishedAt":35},"01M6GDRCKQBAVTGHX5XBH26KPZ","zod-validation-expert","Expert in Zod — TypeScript-first schema validation. Covers parsing, custom errors, refinements, type inference, and integration with React Hook Form, Next.js, and tRPC.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzod-validation-expert\u002FSKILL.md",[144],{"categoryNo":145,"categoryName":146,"taxonomyType":72,"taxonomyTypeDesc":73},"01JBSEEDCAT000000000000009","前端开发",[148,149,150,151,152,92,153,154,155,156,157,158,87,159,160,161,162,32,163,164],"expert","zod","zod validation expert","validation","react","safe","parsing","errors","schema validation","react hook form","hook","trpc","form","type","next","schema","Next.js",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":35},"01M6GDR658B08K4MY0RWD4A6EH","zeroize-audit","Detects missing zeroization of sensitive data in source code and identifies zeroization removed by compiler optimizations, with assembly-level analysis, and control-flow verification. Use for auditing C\u002FC++\u002FRust code handling secrets, keys, passwords, or other sensitive data.","https:\u002F\u002Fgithub.com\u002FSam-06060\u002Fjarvis-assistant\u002Fblob\u002Fmain\u002Fmodules\u002Fagent_skills\u002Fawesome-skills\u002Fplaybooks\u002Fzeroize-audit\u002FSKILL.md",[171],{"categoryNo":100,"categoryName":101,"taxonomyType":72,"taxonomyTypeDesc":73},[173,22,174,175,176,177,178,179,32,180,181,182,183,184,185,186,187,188,189,109],"zeroize audit","write","passwords","get","project","c++","activate","assembly","read","Bash","secrets","analysis","data","flow","verification","code","rust"]