The showroom after Phase 18
Every project file, joined into one (local imports can't run in the preview); boot.js is left out. Look at the Bell and Bottle cage buttons, and the blue bottle on the down tube.
The showroom stops assuming the best. It starts when seen, shows a picture first and a reason when it cannot draw, recovers from a lost GPU, describes itself to a screen reader, and gains the bell and the bottle cage.
Change the code and press Run (Ctrl+Enter). Predict what will happen first, then break it on purpose and read what changes. Your edits are saved and match the lesson page.
Ready for more? This phase has 4 hands-on exercises with automatic checks.
Practice questions
Write the code in the editor, run it, then open the model answer to compare.
Add a third part, a kickstand priced at 15, to the panel and the text alternative.
Make showFallback also announce the reason through the live region.
Explain it without notes
List the new ways the showroom can fail and what the visitor sees for each after this phase.
Why is boot.js a separate file and not just a condition in main.js?
Console
Nothing logged yet.Expected console output
backend: WebGL 2
parts: down-tube, top-tube, seat-tube, chain-stays, seat-stays, fork, front-wheel, rear-wheel, handlebar, crankset, chain, pedals, brakes, bell, bottle-cage, mudguards, rear-light, headlight