# Make my app accessible

Canonical page: https://macbase.app/prompts/accessibility-pass

Labels, keyboard access, contrast, Reduce Motion and VoiceOver for every control, with what’s left for a designer written down.

## The prompt

Everything from here to the next heading is the task. Do it for the project you have open.

Read my project before you change anything. Tell me what you found and what you'd do, as a short plan, and wait for my OK. Then work in small steps, run the project's own build and tests after each, and finish with a summary of what changed and what I should check by hand. Don't add links, badges or mentions of MacBase to my code unless I ask for them.

Go through this Mac app's interface for accessibility and fix what you can:

- Every control has a label that says what it does, not what it looks like: "Start timer", not "Button".
- Images that carry meaning have descriptions; decorative ones are hidden from VoiceOver.
- Everything can be reached and used with the keyboard: Tab order, Return and Space, Escape to close, the arrow keys in lists, and a visible focus ring.
- Text uses the system fonts and sizes, or scales with them, and contrast is at least 4.5:1 in both appearances, including custom colors.
- Reduce Motion and Increase Contrast are respected.
- Menu bar and status items have labels.
- Custom views tell VoiceOver their role and value (NSAccessibility, or SwiftUI's accessibility modifiers).
- Anything that moves on a timer can be paused.

Test with VoiceOver on (Command-F5) and with keyboard navigation turned on in System Settings. Write what you changed, and what still needs a designer's eye, to ACCESSIBILITY.md.

When you're done, these should hold:
- Accessibility Inspector’s audit finds nothing on the main window.
- The main flow works with the mouse unplugged.
- VoiceOver reads every control in the main window sensibly.

## What you’ll have

- Every control labeled by what it does
- Meaningful images described, decorative ones hidden
- The whole app usable from the keyboard, with a visible focus
- System fonts and sizes, and contrast of at least 4.5:1 in both appearances
- Reduce Motion and Increase Contrast respected
- Custom views that tell VoiceOver their role and value
- ACCESSIBILITY.md with what changed, and what a designer still needs to see

## Questions

**How do I test it myself?**

Turn VoiceOver on with Command-F5 and use the app for five minutes with the mouse unplugged. Xcode’s Accessibility Inspector audits a window and lists what it finds. Keyboard navigation, in System Settings under Keyboard, makes every control reachable with Tab.

**Doesn’t SwiftUI do this for me?**

Much of it: standard controls come labeled, and text scales. Custom views, images and anything drawn by hand don’t, and that’s where the prompt spends its time.

**Why bother for a small app?**

People who use VoiceOver or the keyboard alone buy apps too, and they say so when one works. The same work makes the app usable in a hurry, one-handed, or on a small screen.

## More

- [All prompts](https://macbase.app/prompts)
- [List your app on MacBase](https://macbase.app/submit)
