# Accessible mini golf

PUTTLE is a free **accessible mini golf** puzzle. You can putt with a keyboard, turn down motion, hear play events in a screen-reader live region, and read the scorecard by shape as well as color. The park is still a visual canvas. Play at [https://puttle.golf](https://puttle.golf/). No account, no chat.

## Keyboard putting

Touch and mouse still work. The slingshot is the same pull. This map is for a keyboard in play.

1. Press **←** or **→** to aim. Hold **Shift** for fine aim.
2. Press **↑** or **↓**, or **+** or **−**, to set power.
3. Press **1**, **2**, or **3** to snap SOFT · MED · HARD.
4. Press **Space** or **Enter** to putt.
5. Press **U** or **Z** to undo the last putt.
6. Press **V** to peek at the whole hole. Press **C** to open the scorecard.
7. Press **R** in Practice to restart this hole from the tee.
8. Press **Escape** to close How to, Stats, Board, Locker, or Results. Escape does not close the title.

The full slingshot lesson, including drag-back aiming, lives on [How to play](https://puttle.golf/how-to). This page is the keyboard and motion map, not that lesson.

## Reduced motion

If your system sets **prefers-reduced-motion: reduce**, PUTTLE sets reduced motion for the round. You get fewer particles. The extra ghost-gallery hold after a hole-out is skipped. CRT scanlines on the board drop. CSS animations run at about zero duration. The title screen still works. Physics and par do not change.

## Screen readers and dialogs

The course canvas is `#game` with **role="img"** and a long aria-label that names the slingshot and the keyboard. `#srStatus` is a visually hidden **aria-live="polite"** region. Play events are announced there, including power snaps.

How to, Stats, Board, Locker, and Results are **role="dialog"** panels with **aria-modal** and a label. Focus moves into the open panel. Interactive controls use a gold **:focus-visible** outline.

## Scorecard shapes

The results glyph row pairs color with a shape so hue is not the only channel. Under par is **▾**. Over par is **▴**. An ace is **★**. Even par is **—**.

## Honest limits

PUTTLE is a pixel-art park you still have to **see**. Rails, water, and the cup are drawn on a canvas. There is no chat and no account. Family sessions without a lobby are a different page: [kids and families](https://puttle.golf/family). Stroke math is unchanged: [PUTTLE scoring](https://puttle.golf/scoring).

[Play PUTTLE](https://puttle.golf/) · [More](https://puttle.golf/more) · [About](https://puttle.golf/about) · [How to play](https://puttle.golf/how-to) · [FAQ](https://puttle.golf/faq) · [Scoring](https://puttle.golf/scoring)
