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
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 current configuration exposes the development web server on the host's network interfaces, so use a trusted local network and do not expose it to the public internet. These are development services, not a production deployment.
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. Listen to the complete demonstration in the video to hear the game feedback.
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.
The next lesson sets up PostgreSQL in Docker, preparing the database for the API.