WCAG compliance / accessibility megathread
This issue is intended to capture all discussion and answer any questions around accessibility in tldraw, especially as it relates to [WCAG](https://www.w3.org/WAI/standards-guidelines/wcag/) compliance. We've had several questions in the community around accessibility—this is the place to discuss!

## What does accessibility mean for tldraw?

People with disabilities should be able to use tldraw, just like they should be able to use the rest of the web.

The tldraw canvas is an unusual piece of media on the web. All of its unique characteristics present challenges for accessibility. Even a question like "what is the document" (e.g. to be read by a screen reader) is complicated by the fact that the document is multi-dimensional and often changing rapidly. There is no text cursor or insertion point. Many interactions involve visual relationships. Some standard interactions, such as text-based search, are harder to achieve on the canvas.

In the past, we've relied on conventions to solve many of tldraw's most difficult design problems. Discoverability is especially difficult, so we rely on conventions to avoid overloading the user interface. For example, the "rotate zone" at the outside corners of shapes is very difficult to discover if you've never used a canvas application before; but if you have, then it's obvious because all of the other apps do it the same way.

There are unfortunately few accessibility conventions to follow on the canvas, as the existing suite of canvas apps have not had accessibility features long enough for strong conventions to emerge. However, as an SDK, tldraw is in a unique position to "get accessibility right" in a way that helps _create_ those conventions, or at least to set a high standard across multiple products. Personally, I love the idea that many products (even competing products) would each inherit good accessibility patterns from tldraw. It's certainly an attractive value proposition to include these features with tldraw's SDK for customers.

## Work to be done

### Gather information

Before we start shipping anything, there's research work to do to better understand the problem and its opportunities. We've done some legwork here internally at tldraw exploring unknown territory into what conventions could be for 2d canvases. 

- Inventory of accessibility features in tldraw. For the "normal stuff" like menu navigation, text, buttons, etc., what level of compliance are we reaching? Where can we improve on the areas that _don't_ require any creative solutions?
- Exploration of accessibility solutions in other apps. How would the solution we provide compare with other apps in the space like Figma, Miro, Canva, Whimsical, Excalidraw, etc? How well do these features work? Who worked on them? Are there patterns or conventions that these apps use that we can follow or adhere to? Innovation here might be an anti-pattern, so if we can find something that works well and that we can replicate, it would be better for users.
- What are the "open questions" in accessibility for canvas applications? Which problems have not yet had solutions?
- Which requirements are impossible to meet? For example, the contents of a canvas do not reflow to fit the current window, so off-screen content is part of the pattern. Are there others for which we are definitionally exempt?

Most importantly, I'd like to hear from you (dear reader) and from our developer community. If you have adapted tldraw to meet accessibility requirements, what have you changed? If you are planning work related to making your implementation of tldraw more compliant with WCAG or other standards, what problems have you identified, or what work have you planned?

### Set goals

Ultimately we want to ship changes that improve tldraw's accessibility and provide guidance for downstream users of the SDK. 

What are reasonable accessibility goals for tldraw to set? We can evaluate boringly by reach, impact, certainty, and effort; taking into account the difficulty of implementation, the level of quality we can deliver, and the number of people that would be effected by the change.