Last updated on
Run the Tic Tac Toe Game on Windows with NVDA
Download the game, start it with Docker Compose, play using the keyboard and NVDA, and stop the containers when you finish.
Watch the video
Loading this video connects you to YouTube (Google), which receives your IP address and may store or read information on your device for playback and advertising. YouTube may show ads. Choose Load YouTube video to allow this for this video. See Google's privacy policy.
Watch Play Tic Tac Toe on your own Computer while using a Screen Reader on YouTube
This walkthrough takes the tic tac toe project from GitHub to a game running on your own computer. I use Windows, the keyboard and NVDA. You can download a ZIP, so cloning with Git is optional.
Before you start
Follow Install Docker Desktop on Windows 11 with a Screen Reader first. Start Docker Desktop and let its engine finish starting. The earlier build the accessible game lesson explains where the project came from.
The August recording shows an earlier version of the game. The current repository README, checked September 16, also includes an API and database. Use its current setup instructions with today's download; the download, extract and Compose workflow remains the same.
Download and extract the project
Open the tic tac toe repository. In GitHub's Code menu, choose Download ZIP. In your Downloads folder, select the ZIP and use Extract All. Open the extracted folder, then the project folder containing README.md and compose.yaml. Do not run commands from inside the ZIP.
Open PowerShell or Windows Terminal in that project folder. In File Explorer, Alt+D focuses the address bar; entering powershell opens PowerShell at that location. Confirm the file is there before continuing:
Get-Location
Get-ChildItem compose.yaml
Start and check the services
Run these commands one at a time. The first start can take longer while Docker downloads images and builds the project:
docker compose up -d
docker compose ps
The current project has app, api and database services. Wait for their health checks to report healthy. The -d option starts them in the background. The development web server is reachable from other devices on your network, so only run it on a network you trust.
Open the game and play
In your browser's address bar, enter the address below. The correct port is 5173; I briefly say 5137 in the recording.
http://localhost:5173
Use Tab to move through the game's controls. Listen for the square's row, column and state, then activate an available square with Enter or Space. Follow the turn announcements, try a complete game, and use Play again to start over. In NVDA browse mode, H moves through headings; use NVDA+Space when you need to send keys directly to a focused control. The video has the full game so you can hear what NVDA announces.
If the page does not open
Check that Docker Desktop is running and your terminal is still in the folder with compose.yaml. Read the service status and recent app output:
docker compose ps
docker compose logs --tail=100 app
If a service is still starting, allow the build to finish. If there is an error, work from the first reported error. Changing just the browser address will not fix a port conflict; the project's README explains changing the host port.
Stop the project and come back later
From the same project folder, stop the project's containers:
docker compose down
docker compose ps
Normal down keeps the project's named data volumes. Adding --volumes would remove those volumes, so it is not part of this stopping routine. See Docker's Compose down reference. To return later, run docker compose up -d again and reopen the game address.
Next, I set up PostgreSQL in Docker so the game has a database ready for the API.