Skip to content
Design
Skill

/accessible-content

Use when writing or structuring any user-facing content — interface copy, labels, error messages, help text, headings, alt text, link text, or form instructions — ensures content is readable, navigable, and meaningful for everyone

BOOST
From plugin
designpowers
25436 skills10 agents1 hook
Install
$ npx -y skills add Owl-Listener/designpowers --skill accessible-content --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/accessible-content

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when writing or structuring any user-facing content — interface copy, labels, error messages, help text, headings, alt text, link text, or form instructions — ensures content is readable, navigable, and meaningful for everyone

SKILL.md

accessible-content.SKILL.md
name: accessible-content
description: Use when writing or structuring any user-facing content — interface copy, labels, error messages, help text, headings, alt text, link text, or form instructions — ensures content is readable, navigable, and meaningful for everyone

Accessible Content

Words are interface. Every label, every heading, every error message is a design decision. This skill ensures content works for screen readers, for people reading in a second language, for people under stress, and for people who just need things to be clear.

When to Use

  • Writing interface labels, button text, or form instructions
  • Structuring headings and page hierarchy
  • Writing error messages or help text
  • Creating alt text for images
  • Writing link text
  • Structuring data tables
  • Any time words appear on screen

Process

Step 1: Plain Language First

Every piece of content should meet these criteria:

  • **Reading level:** aim for a reading age of 12-14 (roughly 6th-8th grade). Use short sentences and common words
  • **One idea per sentence.** If a sentence has "and" in the middle, consider splitting it
  • **Active voice.** "We sent your confirmation" not "Your confirmation has been sent"
  • **Specific over vague.** "Save your changes" not "Submit" or "OK"
  • **No jargon** unless the audience demonstrably uses it. When jargon is necessary, provide a plain explanation

Step 2: Heading Structure

Headings are navigation for screen readers. Get the structure right:

  • **One H1 per page** — describes the page purpose
  • **Headings follow a logical hierarchy** — H1 → H2 → H3, never skip levels
  • **Headings are descriptive** — a screen reader user scanning headings alone should understand the page structure
  • **Do not use headings for visual styling** — if you need big bold text that is not a heading, use CSS

Step 3: Form Labels and Instructions

Every form input must have:

  • **A visible label** — placeholders are not labels (they disappear on focus)
  • **Programmatic association** — `<label for="id">` or `aria-labelledby`
  • **Required field indication** — visible and announced, not just an asterisk
  • **Format hints** — "DD/MM/YYYY" before the input, not after
  • **Error association** — `aria-describedby` linking the input to its error message

Step 4: Alt Text

Alt text is content, not metadata:

| Image Type | Alt Text Approach | |-----------|------------------| | Informative image | Describe the information the image conveys, not the image itself | | Decorative image | Empty alt (`alt=""`) — do not describe decorative images | | Functional image (button/link) | Describe the action, not the image ("Search", not "magnifying glass") | | Complex image (chart/graph) | Brief alt + detailed description in surrounding text or `<details>` | | Image of text | Reproduce the full text content |

Step 5: Link Text

Links must make sense out of context (screen reader users often navigate by links alone):

  • Yes: "Read the accessibility guidelines"
  • No: "Click here" or "Read more" or "Learn more"
  • If multiple "Read more" links exist on a page, each must be distinguishable (via `aria-label` or visible text)

Step 6: Error Messages

Follow the pattern: **[What happened] + [What to do]**

  • Keep the language neutral — never blame the user
  • Be specific about what needs to change
  • Place the error message adjacent to the relevant field
  • Announce errors to screen readers via `aria-live="assertive"` or by moving focus

Step 7: Tables

Data tables need:

  • `<caption>` describing the table's purpose
  • `<th>` elements with `scope="col"` or `scope="row"`
  • No layout tables — use CSS Grid or Flexbox for layout
  • If a table is complex, provide a text summary

Step 8: Content Review

Before finalising any content, verify:

  • [ ] Every interactive element has a visible, descriptive label
  • [ ] Heading hierarchy is logical and complete
  • [ ] Link text makes sense out of context
  • [ ] Error messages explain both the problem and the solution
  • [ ] Alt text is present and appropriate for every image
  • [ ] Reading level is appropriate for the audience
  • [ ] Content works when translated (avoid idioms, cultural references that do not travel)

Integration

  • **Called by:** `writing-design-plans`, `ui-composition`, `interaction-design`
  • **Pairs with:** `cognitive-accessibility` (reading load), `inclusive-personas` (audience awareness)
  • **Reviewed by:** `designpowers-critique`
Read more
Ships withdesignpowers

An agent design team you control. 10 agents that run an inclusive design process while you direct. The system notices how you design and reflects it back. Designpowers is an open, model-agnostic design workflow that gives you a team of 10 design agents.

Get the whole plugin

Other skills on designpowers.