[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C5879G96A5VQMN5AVAJRJS":3,"skill-same:01M6C5879G96A5VQMN5AVAJRJS":56},{"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":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":14,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M6C5879G96A5VQMN5AVAJRJS","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.","CoralShades\u002Facm-ai","CoralShades","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F220297585?v=4","01M6C5211QSJHZ8HXSDDWCR507","Coral Shades AI Agency","01M6C52161FNQDRQ0FRR8DAA9D",0,"MIT","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffixing-accessibility\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29],"accessibility","fixing accessibility","issues","audit","compliance","WCAG","interactive","management","fix","use","html","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.\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 apply\n\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 apply\n\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,"description":7},"main","1ca81b0a7de199942400f965edd4d7544077ac5d",".agents\u002Fskills\u002Ffixing-accessibility","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai","https:\u002F\u002Fgithub.com\u002FCoralShades","coralshades.com.au","2026-04-18 00:45:07",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add CoralShades\u002Facm-ai --skill fixing-accessibility",{"tool":48,"command":49},"bunx","bunx skills add CoralShades\u002Facm-ai --skill fixing-accessibility",{"tool":51,"command":52},"pnpm","pnpm dlx skills add CoralShades\u002Facm-ai --skill fixing-accessibility","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Ffixing-accessibility\u002FSKILL.md",true,[],[57,79,92,108,130,140],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":68,"publishedAt":30},"01M6C63HKXA890HHV47WBAX0TB","uncodixfy","Prevents generic AI\u002FCodex UI patterns when generating frontend code. Use this skill whenever generating HTML, CSS, React, Vue, Svelte, or any frontend UI code to enforce clean, human-designed aesthetics inspired by Linear, Raycast, Stripe, and GitHub instead of typical AI-generated UI.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Funcodixfy\u002FSKILL.md",[63],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[59,69,70,71,72,73,74,75,76,77,78,28,29],"github","frontend","css","codex","react","code","linear","ui","vue","generated",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":83,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":30},"01M6C63FJ2GEBBGZ5XSMV40KXB","runpodctl","Runpod CLI to manage your GPU workloads.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Frunpodctl\u002FSKILL.md",[],[81,87,88,89,90,91],"macos","cli","linux","gpu","Bash",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":30},"01M6C63DPAV46TFVQ01SFYPJ7X","langgraph-persistence","INVOKE THIS SKILL when your LangGraph needs to persist state, remember conversations, travel through history, or configure subgraph checkpointer scoping. Covers checkpointers, thread_id, time travel, Store, and subgraph persistence modes.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flanggraph-persistence\u002FSKILL.md",[],[99,100,101,102,103,104,105,106,107],"langgraph persistence","langgraph","persistence","travel","history","scoping","remember","state","configure",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":119,"publishedAt":30},"01M6C63BNS9CQEBTB8RNSSBFPA","langgraph-human-in-the-loop","INVOKE THIS SKILL when implementing human-in-the-loop patterns, pausing for approval, or handling errors in LangGraph. Covers interrupt(), Command(resume=...), approval\u002Fvalidation workflows, and the 4-tier error handling strategy.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flanggraph-human-in-the-loop\u002FSKILL.md",[114],{"categoryNo":115,"categoryName":116,"taxonomyType":117,"taxonomyTypeDesc":118},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[120,121,100,122,123,124,125,126,127,128,129],"langgraph human in the loop","loop","workflows","error handling","validation","human-in-the-loop","command","strategy","approval","resume",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":30},"01M6C639GVYZFX3NFPV5FBDR4F","langgraph-fundamentals","INVOKE THIS SKILL when writing ANY LangGraph code. Covers StateGraph, state schemas, nodes, edges, Command, Send, invoke, streaming, and error handling.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flanggraph-fundamentals\u002FSKILL.md",[],[137,100,123,106,138,139,126,74],"langgraph fundamentals","streaming","writing",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":30},"01M6C6375N34YX2GZ3SD3R7XR2","langchain-rag","INVOKE THIS SKILL when building ANY retrieval-augmented generation (RAG) system. Covers document loaders, RecursiveCharacterTextSplitter, embeddings (OpenAI), and vector stores (Chroma, FAISS, Pinecone).","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flangchain-rag\u002FSKILL.md",[],[147,148,149,150,151,152,153,154,155,156],"rag","langchain rag","langchain","embeddings","vector","openai","chroma","faiss","vector stores","system"]