gpt-taste
gpt taste
aria-expert
Expert knowledge of WAI-ARIA (Accessible Rich Internet Applications). Use when users ask about ARIA roles, states, properties, accessible name computation, ARIA attributes (aria-label, aria-labelledby, aria-describedby, etc.), widget roles, landmark roles, live regions, ARIA best practices, or ho...
Full skill instructions
Expert resource for WAI-ARIA (Accessible Rich Internet Applications) specifications and implementation guidance.
Before reading any ARIA files, check if the repo/aria-spec/ and repo/apg-repo/ folders exist in this skill directory. If they don't exist, run the setup script:
cd .cursor/skills/aria-expert && ./setup.sh
This clones the official W3C ARIA repository and the ARIA Authoring Practices Guide. Only needs to run once.
To pull the latest ARIA specifications:
cd .cursor/skills/aria-expert/repo/aria-spec && git pull
cd .cursor/skills/aria-expert/repo/apg-repo && git pull
This skill uses the official W3C ARIA repository and ARIA Authoring Practices Guide (APG) as git submodules. Content is in HTML format (ReSpec specifications).
| Path | Content |
|------|---------||
| repo/apg-repo/ | ARIA Authoring Practices Guide |
| repo/apg-repo/content/patterns/ | Design patterns for common widgets |
Key content in APG:
| Path | Content |
|---|---|
repo/aria-spec/index.html | Main ARIA 1.3 specification - roles, states, properties |
Key content in index.html:
| Path | Content |
|---|---|
repo/aria-spec/accname/index.html | Accessible Name and Description Computation specification |
Key content in accname:
| Path | Content |
|---|---|
repo/aria-spec/core-aam/index.html | Core Accessibility API Mappings - how ARIA maps to platform APIs |
repo/aria-spec/html-aam/index.html | HTML Accessibility API Mappings - HTML element mappings |
Key content in AAM specs:
| Path | Content |
|---|---|
repo/aria-spec/dpub-aria/index.html | Digital Publishing ARIA - roles for digital publications |
repo/aria-spec/dpub-aam/index.html | Digital Publishing AAM - mappings for dpub roles |
repo/aria-spec/graphics-aria/index.html | Graphics ARIA - roles for graphics and diagrams |
repo/aria-spec/graphics-aam/index.html | Graphics AAM - mappings for graphics roles |
| Path | Content |
|---|---|
repo/aria-spec/svg-aam/index.html | SVG Accessibility API Mappings |
repo/aria-spec/mathml-aam/index.html | MathML Accessibility API Mappings |
repo/aria-spec/pdf-aam/index.html | PDF Accessibility API Mappings |
| Path | Content |
|---|---|
repo/aria-spec/README.md | Repository overview and contribution guidelines |
repo/aria-spec/CONTRIBUTING.md | How to contribute to ARIA specifications |
Answer directly without searching files - The 5 Rules of ARIA Use are documented in this file above. No need to search the APG repo for these fundamental principles.
repo/apg-repo/content/patterns/accordion/ - Accordion patternalert/ - Alert patternbutton/ - Button patterndialog-modal/ - Modal dialogtabs/ - Tabs patternmenu-button/ - Menu buttoncombobox/ - Combobox/autocompleterepo/aria-spec/index.html and search for the role namerepo/aria-spec/index.html and search for the attribute namerepo/aria-spec/accname/index.htmlrepo/aria-spec/core-aam/index.htmlrepo/aria-spec/html-aam/index.htmlrepo/aria-spec/dpub-aria/index.htmlrepo/aria-spec/graphics-aria/index.htmlCritical principles for using ARIA correctly (from WAI-ARIA Authoring Practices):
If you can use a native HTML element or attribute with the semantics and behavior already built in, instead of re-purposing an element and adding ARIA, then do so.
Good: <button>Click me</button>
Bad: <div role="button" tabindex="0">Click me</div>
Do not change native semantics, unless you really have to.
Bad: <h1 role="button">Heading button</h1>
Why: This creates confusion - it looks like a heading but acts like a button.
All interactive ARIA controls must be usable with the keyboard. If you create a widget using role="button", role="tab", etc., it must be keyboard accessible.
Required:
Do not use role="presentation" or aria-hidden="true" on a focusable element.
Bad: <button aria-hidden="true">Click me</button>
Why: Screen readers will skip it, but keyboard users can still focus it, creating confusion.
All interactive elements must have an accessible name.
Methods to provide accessible names:
<button>Submit</button>aria-label: <button aria-label="Close dialog">×</button>aria-labelledby: <button aria-labelledby="label-id">×</button><img src="logo.png" alt="Company name">Incorrect ARIA can make accessibility worse for screen reader users than having no ARIA at all. When in doubt, test with real assistive technologies.
| Role | Purpose | Key Properties |
|---|---|---|
| button | Clickable button | aria-pressed, aria-expanded |
| link | Hyperlink | aria-expanded |
| checkbox | Checkable input | aria-checked (required) |
| radio | Radio button | aria-checked (required) |
| textbox | Text input | aria-multiline, aria-readonly, aria-required |
| combobox | Combo box widget | aria-expanded (required), aria-controls |
| listbox | List of selectable items | aria-multiselectable |
| option | Selectable option | aria-selected |
| tab | Tab in a tablist | aria-selected (required) |
| tabpanel | Container for tab content | aria-labelledby (required) |
| menu | Menu widget | - |
| menuitem | Menu item | - |
| menuitemcheckbox | Checkable menu item | aria-checked (required) |
| menuitemradio | Radio menu item | aria-checked (required) |
| dialog | Dialog/modal window | aria-modal, aria-labelledby |
| alertdialog | Alert dialog | aria-modal, aria-labelledby |
| slider | Slider control | aria-valuenow (required), aria-valuemin, aria-valuemax |
| progressbar | Progress indicator | aria-valuenow, aria-valuemin, aria-valuemax |
| Role | Purpose | HTML5 Equivalent |
|---|---|---|
| banner | Site header | <header> (when not in article/section) |
| navigation | Navigation links | <nav> |
| main | Main content | <main> |
| complementary | Complementary content | <aside> |
| contentinfo | Footer information | <footer> (when not in article/section) |
| search | Search functionality | No equivalent |
| region | Significant page section | <section> with accessible name |
| form | Form landmark | <form> with accessible name |
| Property | Type | Purpose |
|---|---|---|
| aria-label | String | Provides accessible name |
| aria-labelledby | ID reference(s) | Names element via other element(s) |
| aria-describedby | ID reference(s) | Provides accessible description |
| aria-expanded | true/false/undefined | Indicates expanded state |
| aria-hidden | true/false | Hides content from accessibility tree |
| aria-live | off/polite/assertive | Indicates live region updates |
| aria-atomic | true/false | Announces entire region on change |
| aria-relevant | additions/removals/text/all | What changes to announce |
| aria-controls | ID reference(s) | Element controlled by this element |
| aria-owns | ID reference(s) | Parent-child relationship |
| aria-current | page/step/location/date/time/true/false | Current item in set |
| aria-disabled | true/false | Indicates disabled state |
| aria-invalid | true/false/grammar/spelling | Indicates validation state |
| aria-required | true/false | Indicates required field |
| Role | Purpose |
|---|---|
| article | Self-contained composition |
| document | Document content |
| feed | Scrollable list of articles |
| heading | Section heading |
| img | Image (for grouping elements into single image) |
| list | List of items |
| listitem | Item in a list |
| table | Table structure |
| row | Table row |
| cell | Table cell |
| rowheader | Row header cell |
| columnheader | Column header cell |
| Property | Values | Purpose |
|---|---|---|
| aria-live | off, polite, assertive | Announce updates |
| aria-atomic | true, false | Announce whole region |
| aria-relevant | additions, removals, text, all | What to announce |
| aria-busy | true, false | Region is updating |
| Role | Purpose |
|---|---|
| doc-abstract | Abstract/summary |
| doc-acknowledgments | Acknowledgments |
| doc-afterword | Afterword |
| doc-appendix | Appendix |
| doc-backlink | Back link |
| doc-biblioentry | Bibliography entry |
| doc-bibliography | Bibliography |
| doc-biblioref | Bibliography reference |
| doc-chapter | Chapter |
| doc-colophon | Colophon |
| doc-conclusion | Conclusion |
| doc-cover | Cover image |
| doc-credit | Credit statement |
| doc-credits | Credits |
| doc-dedication | Dedication |
| doc-endnote | Endnote |
| doc-endnotes | Endnotes collection |
| doc-epigraph | Epigraph |
| doc-epilogue | Epilogue |
| doc-errata | Errata |
| doc-example | Example |
| doc-footnote | Footnote |
| doc-foreword | Foreword |
| doc-glossary | Glossary |
| doc-glossref | Glossary reference |
| doc-index | Index |
| doc-introduction | Introduction |
| doc-noteref | Note reference |
| doc-notice | Notice |
| doc-pagebreak | Page break |
| doc-pagelist | Page list |
| doc-part | Part |
| doc-preface | Preface |
| doc-prologue | Prologue |
| doc-pullquote | Pull quote |
| doc-qna | Q&A section |
| doc-subtitle | Subtitle |
| doc-tip | Tip |
| doc-toc | Table of contents |
| Role | Purpose |
|---|---|
| graphics-document | Graphics document container |
| graphics-object | Graphics object |
| graphics-symbol | Graphics symbol |
This skill uses material from the W3C ARIA Repository. Copyright © W3C® (MIT, ERCIM, Keio, Beihang). See W3C Document License.
gpt taste
Premium brand-kit image generation for high-end identity systems, logo concepts, and visual-world presentations.
Premium website design-to-code skill that generates visual references first, then builds faithful frontend implementations.
Premium frontend image direction for landing pages and marketing sites, generating one distinct horizontal image per section.
Premium mobile app screen concepts and flows with clean hierarchy, strong imagery, and distinctive art direction.
Emil Kowalski's philosophy on UI polish, component design, and the invisible details that make software feel good.
Frontend design and iteration for production-grade interfaces, from concept to ship.
Reverse-engineer design tokens from public websites into starter token files for your project.
Builds an animation from scratch by making the decisions in the order that determines whether it feels right.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
Chat-to-edit AI studio for product photos, portraits, branding, and video.
Generate your dream room in seconds.
Redesign your interior in seconds using AI
Transform rooms with AI-generated designs.
Transform Your Space with AI-Powered Japanese Interior Designs by Jife
AI-powered wireframes for non-designers.
Revolutionize Property Viewing with AI-Generated Floor Plans and Virtual Tours
Transform sketches into stunning architectural renders with AI.