Accessibility
Using this site without the 3D
This site renders Ten’s in real time in your browser, which is an unusual thing for a venue site to do and creates accessibility obligations that a normal page does not have. Here is exactly what we did about them, and how to turn any of it off.
The short answer
There is a complete text edition of this entire site — every price, every night, every photograph described in words — on one page, with no 3D and nothing moving. It is not a stripped-down apology. It is the same content, set to be read.
What the build does
- Motion, in four levels
- A control in the bottom-right corner of every page, and inside the age notice before you have seen anything: Full, Balanced, Calm, Still. If your system asks for reduced motion the site starts at Calm without being told; whatever you choose afterwards overrides that, in either direction, and is remembered on this device.
- A plain version of everything
- The whole site exists as one quiet page with no 3D and nothing moving — the same words, the same prices, the same nights.
- Keyboard
- Everything works from a keyboard. The 3D canvas is skipped by the tab order rather than trapping you inside it, and the focus outline is a visible ember ring, never removed.
- Sound
- Nothing plays sound until you ask it to. There is no autoplaying audio anywhere on the site.
- Contrast
- Text sits on solid grounds, never on moving video, and meets WCAG AA against them. The palette was built to a contrast target rather than checked against one afterwards.
- Alt text
- Every photograph has alt text written to describe the room and the work — the architecture, the rigging, the light — rather than to describe a body.
- Flashing
- Measured, not assumed: zero flashes per second on every route we sampled, against a limit of three. The age notice carries the warning before you see any of it, and the measurement is written out below.
- Forms
- Errors say what to do, sit next to the field they belong to, and are never signalled by colour on its own.
- No third-party anything
- No analytics, no tracking pixel, no third-party font, no embedded map, no captcha. Fewer moving parts is itself an accessibility decision: nothing loads late and rearranges the page under you.
The four motion levels
The control is a pill marked Motion in the bottom-right corner of every page, and the same four choices appear inside the age notice, before you have seen a single frame of the room. It needs JavaScript, because it has to remember what you chose; with scripting switched off there is no 3D on the site at all, so there is nothing left for it to turn down.
- Full
- Everything moves. The camera drifts, the stage beam breathes, the ember field rises, and a film grain sits over the whole page.
Open the site at full - Balanced
- The page stops moving; the room does not. The film grain is switched off, smooth scrolling is off, and every entrance and interface transition is cut to about a third of its length. The 3D room keeps rendering at full frame rate — this level is not a reduction of the room, and we would rather say so than let the name imply otherwise. If the room itself is the problem, choose Calm.
Open the site at balanced - Calm
- The room is lit and held on a single frame. The renderer stops advancing its clock, the camera stops, the curtain starts open instead of parting, the ember field drops to 300 static motes, and nothing on the page animates or transitions. This is the level a reduced-motion system setting selects on its own.
Open the site at calm - Still
- No 3D at all. The canvas is removed from the page rather than frozen — no WebGL context, no render loop, no battery cost — and the site is photographs and type. Everything is still here: every price, every night, every address.
Open the site at still
Those links are the whole mechanism — ?motion= on any address on the site sets the level and remembers it, so one of them can be bookmarked or sent to somebody. “Use my system setting” inside the control forgets your choice and hands the decision back to your operating system.
Motion level and picture quality are separate settings on purpose. A slow or hot device lowers the fidelity of the room on its own — fewer embers, a coarser beam, a lower resolution — and it never lowers the motion level to do it. Only you or your operating system move that. It would be wrong for the site to decide that a cheap phone means you did not want the room to move.
Flashing, and how we know
The site draws a stage in real time, and a stage has a beam in it. Anything that bright and that alive raises a fair question about photosensitive epilepsy, so the warning sits in the age notice — the one screen everybody passes through before any of it is on screen — rather than here, on a page you would only reach afterwards.
The warning is not the whole answer, because a notice on top of an unsafe page is not a fix. WCAG 2.3.1 sets the limit at three flashes in any one second, where a flash means a swing of at least 10% in relative luminance over a quarter of the screen. We measured it, by reading the luminance of what the browser actually composited once per animation frame, for fourteen seconds a route, on a real GPU:
| What was sampled | Frames | Light changes in the worst second | Largest swing |
|---|---|---|---|
| 12 Hz strobe — the control, and it must fail | 909 | 11 | 1.000 |
| Home | 2,953 | 0 | 0.036 |
| Nights | 2,960 | 1 | 0.056 |
| Reserve | 2,976 | 1 | 0.049 |
| The room (/stage/) | 3,949 | 1 | 0.044 |
| The room, highest quality, bloom on | 4,337 | 0 | 0.045 |
| Any route at Calm | 774 | 0 | 0.000 |
| Any route at Still | — | no canvas | — |
The first row is the control: a deliberate twelve-hertz strobe, fed through the same measurement, so that a column of zeroes means the instrument works rather than that it is asleep. Across the whole screen the largest swing we recorded is 0.056, about half of what a flash needs. Over a single quarter of the screen the worst any route reaches is one change in a second — in the second the page opens and the camera settles — against a limit of three, and we are counting each change, where the standard counts pairs. Nothing here approached the threshold, so nothing had to be dimmed to get under it.
The last two rows measure the control rather than the content. At Calm the swing is exactly zero over 774 frames: the room is genuinely held on one frame, not pulsing slowly. At Still there is no canvas for the instrument to find at all.
There is a second clause about saturated red, because deep red flashes are more provocative than the same brightness in another hue. It applies where red is at least 80% of the total light. The reddest frame anywhere on this site is 56%, and the room itself — where the beam is — never passes 43%.
The honest limit on all of this: it is a measurement of the frames the site renders on the machines we ran it on, not a clinical clearance, and photosensitivity is individual. If the room is uncomfortable, Calm holds it on one frame and Still removes it, and both are one press away on every page.
Keyboard
- Tab from the top of any page reaches a “Skip to content” link before anything else.
- M mutes and unmutes from anywhere, without opening a menu.
- The motion control is a normal group of radio buttons: Tab into it, arrow keys between the four levels, Escape to close the panel.
- The 3D canvas takes no focus at all. It is decoration with a description beside it, never a control you have to get out of.
The standard we built to
The target is WCAG 2.2 Level AA. The site was built to it rather than retrofitted towards it: semantic landmarks and one heading outline per page, labelled controls, visible focus, live regions for anything that changes on its own, and colour contrast checked as part of the palette rather than after the fact.
It has not been independently audited, so this is a statement of what was built and tested here, not a certificate. If something on this site does not work for you, that is a defect and we would like to know about it.
Where the limits are
- The 3D room is the site’s main way of showing itself, and no description fully replaces looking at it. The text edition carries all the same information; it does not carry the spectacle, and it is not pretending to.
- A device with no WebGL, or one under memory pressure, drops to the plain presentation. That path is deliberate and complete rather than an error state.
- The age notice on the text edition is a notice, not a gate, because that page runs no scripts at all. That is the honest trade: a text mirror of an adults-only venue carries the notice, and a notice without JavaScript is still a notice.
The building itself
This page is about the website. The house publishes nothing about physical access to the room, and we are not going to guess on its behalf — guessing is how somebody ends up driving to Arthur Kill Road for nothing.
For questions about access to the building itself, call +1 347-630-7077 before you travel. Someone is at the door from 5 PM.
Tell us what broke
Something not working for you? Email tenscabaret@hotmail.com or call +1 347-630-7077 and say what happened — what you were trying to do, what the site did instead, and what you were using. That is enough to fix most things.
Related: the text-only edition · privacy policy · terms of service.