Skip to content

ai-agents: add per-component accessibility schema to /r/<name>.json #255

@bntvllnt

Description

@bntvllnt

Problem

Agents generating UI from VLLNT components ship a11y bugs because they don't know the keyboard model, ARIA roles, or focus expectations of each component.

Acceptance criteria

  • Add a11y object to /r/<name>.json:
    a11y: {
      role?: string;                  // e.g., 'dialog', 'menu', 'tablist'
      keyboard?: Array<{ keys: string; action: string }>;  // e.g., { keys: 'Enter / Space', action: 'activate' }
      aria?: string[];                // attributes consumers must set: 'aria-label', etc.
      focusManagement?: 'auto' | 'manual';
      notes?: string;
    }
  • Source: meta.json per component or extracted from Radix primitive metadata where applicable.
  • Component page renders an "Accessibility" section (collapsed by default).
  • /llms-full.txt includes a11y schema (ai-agents: serve /llms-full.txt with full docs + component summaries #236).
  • MCP get_component returns a11y (ai-agents: ship @vllnt/mcp — MCP server (search/get/install components) #246).
  • CI guard: components with Dialog, Menu, Tabs, Combobox patterns must declare a11y.

References

Metadata

Metadata

Assignees

Labels

ai-agentsAI agent discoverability (llms.txt, structured data, MCP)documentationImprovements or additions to documentationenhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions