

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
12345# shadcn/Radix UI Component Review Rules67All comments are **advisory**.89## Core Principle1011This project uses **shadcn/ui** components built on **Radix UI** primitives (from `packages/ui/`). These components provide comprehensive accessibility out-of-the-box. **Do not flag missing accessibility attributes that are already handled by the underlying Radix primitives.**1213## Components with Built-In Accessibility — Do NOT Flag1415The following components (imported from `ui`) already handle ARIA roles, keyboard navigation, focus management, and screen reader support automatically via Radix UI primitives:1617| Component | What Radix Handles |18|-----------|-------------------|19| `Dialog`, `AlertDialog` | `role="dialog"`, `aria-modal`, focus trapping, ESC to close |20| `DropdownMenu`, `ContextMenu` | `role="menu"` / `role="menuitem"`, arrow key navigation |21| `Select` | `role="combobox"`, `aria-expanded`, keyboard selection |22| `Tabs` | `role="tablist"` / `role="tab"` / `role="tabpanel"`, `aria-selected`, arrow keys |23| `Checkbox` | `role="checkbox"`, `aria-checked`, Space to toggle |24| `RadioGroup` | `role="radio"`, `aria-checked`, arrow key navigation |25| `Switch` | `role="switch"`, `aria-checked`, keyboard toggle |26| `Tooltip` | Trigger/content association, show/hide timing |27| `Accordion`, `Collapsible` | `aria-expanded`, Enter/Space to toggle |28| `Popover`, `HoverCard` | Focus management, dismiss on ESC |29| `Slider` | `role="slider"`, `aria-valuemin/max/now`, arrow keys |30| `Toggle`, `ToggleGroup` | `aria-pressed`, keyboard support |31| `ScrollArea` | Accessible scrollbar replacement |32| `NavigationMenu` | `role="navigation"`, keyboard navigation |3334### Specifically, Never Flag These3536- Missing `role` on `Dialog`, `AlertDialog`, `DropdownMenu`, `Select`, `Tabs`, `RadioGroup`, or other Radix-based components — roles are set by the primitive37- Missing `aria-modal` on `Dialog` or `AlertDialog` — set automatically38- Missing `aria-expanded` on `Accordion`, `Collapsible`, `Select`, or `DropdownMenu` triggers — managed by Radix state39- Missing `aria-selected` on `Tabs` — managed by `TabsPrimitive`40- Missing `aria-checked` on `Checkbox`, `RadioGroup`, or `Switch` — managed by Radix state41- Missing keyboard event handlers (`onKeyDown`, `onKeyUp`) on interactive Radix components — keyboard support is built-in42- Missing focus management in `Dialog` or `AlertDialog` — focus trapping is automatic43- Missing `aria-label` on `DialogClose` or `AlertDialogCancel` — these render a visible `<span className="sr-only">Close</span>`4445## What TO Flag4647Only flag accessibility issues for:48491. **Custom interactive elements** not using Radix primitives (e.g., a `<div onClick>` that should be a `<button>`)502. **Icon-only buttons** missing an accessible label — `<Button>` alone does not add one; use `aria-label` or `<span className="sr-only">`513. **Missing `Label` association** — form inputs should be paired with `<Label htmlFor="...">` or wrapped in a `<Field>` component524. **Images missing `alt` text** — not handled by any component library535. **Color-only state indicators** — state changes should not rely solely on color54
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| supabase/supabase.github/instructions/studio-error-handling.instructions.md · 108k | Copilot instructions | gitdo-not | 57/100 | 14 days ago | |
| supabase/supabaseapps/studio/CLAUDE.md · 108k | CLAUDE.md | testlint-formatstyletesting-strategy+1 | 81/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-composition-patterns.instructions.md · 108k | Copilot instructions | stylegitapiui+1 | 61/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-copy.instructions.md · 108k | Copilot instructions | uiagent-behaviourdocs | 25/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-shortcuts.instructions.md · 108k | Copilot instructions | stylegitdo-not | 61/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-telemetry.instructions.md · 108k | Copilot instructions | stylegitdo-notdocs | 65/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-testing.instructions.md · 108k | Copilot instructions | testtypestesting-strategygit+1 | 55/100 | 14 days ago | |
| supabase/supabase.claude/CLAUDE.md · 108k | CLAUDE.md | testlint-formatstylearch+1 | 97/100 | 14 days ago | |
| supabase/supabase.github/instructions/studio-e2e-tests.instructions.md · 108k | Copilot instructions | teststyletesting-strategygit+2 | 60/100 | 14 days ago | |
| supabase/supabase.claude/skills/vercel-composition-patterns/AGENTS.md · 108k | AGENTS.md | styleapiuido-not | 45/100 | 14 days ago | |
| supabase/supabase.github/copilot-instructions.md · 108k | Copilot instructions | lint-formatstylegitagent-behaviour | 56/100 | 14 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| chihebnabil/lovable-boilerplate.github/instructions/global.instructions.md · 65 | Copilot instructions | buildlint-formatstylearch+4 | 100/100 | 14 days ago | |
| louislam/uptime-kuma.github/copilot-instructions.md · 90k | Copilot instructions | setupbuildtestlint-format+9 | 100/100 | 14 days ago | |
| HerringtonDarkholme/megarepo.github/copilot-instructions.md · 17 | Copilot instructions | setupbuildtestlint-format+7 | 100/100 | 14 days ago | |
| bagisto/bagisto.github/copilot-instructions.md · 28k | Copilot instructions | setupbuildteststyle+5 | 97/100 | 14 days ago | |
| JCodesMore/ai-website-cloner-template.github/copilot-instructions.md · 32k | Copilot instructions | buildlint-formatstylearch+3 | 97/100 | 7 days ago | |
| nerolis-lab/nerolis-lab.github/copilot-instructions.md · 32 | Copilot instructions | setupbuildtestlint-format+11 | 96/100 | 14 days ago | |
| darkmatter/nixmac.github/copilot-instructions.md · 25 | Copilot instructions | setupbuildtestlint-format+8 | 96/100 | 14 days ago | |
| thangaram611/second-brain.github/copilot-instructions.md · 0 | Copilot instructions | setupteststylearch+4 | 96/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/supabase-supabase-github-instructions-studio-shadcn-components-instructions)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.