I was hanging out on the ##chess IRC channel on freenode, as usual, when someone connected and said this:

Hello, my name is Vojta and I used to play chess some time ago. I would like to start again. I am blind. Do you know of any possibility so that blind people could play chess with other people or against computer?

It seems like if you're visually impaired, and want to play Internet chess, you're actually out of luck. Not a chess site bothered to implement support for screenreaders.

Now is this an opportunity to change the world, or what?

A fruitful collaboration

I've been in contact with Vojta for a week now. He explained what blind people need from a chess website to be usable, and I implemented changes one by one. Even if it still is a work in progress, the fundamental features are ready, and we were able to play a game of chess.

What has been done:

Show a textual representation of boards in FEN and PGN. It updates in real time when the board state changes

Allow to input moves by typing "e2e4" or "b7b8Q" in a input field instead of dragging pieces

Implement aria label attributes on buttons, and disable icon fonts

Disable lichess custom CAPTCHAs. They will be replaced by accessible ones when blind mode is enabled.

What is left to do:

Configure the clock without visual sliders

Study accessibility of other parts of the site with a screen reader

Gather feedback and improve!

How to play chess with a screen reader

The following is written by Vojta himself:

Thanks to recent improvements, it is really easy to start playing chess games through Lichess using screenreader. The first thing you need to do is to press "Enable blind mode" button, which should be one of first elements you encounter on the site. It is not really possible to play games without blind mode turned on.

If blind mode is on, you are offered textual description of moves and you are presented with labelled buttons. Now it is really easy - pick a player or just choose to play against computer and fun begins. During the game there is a heading called "Textual representation" and following this heading are following information:

a number of the current turn

a history of all turns in PGN formata

a chessboard representation in FEN format.

your color

current state of game (who's turn it is)

an edit field for entering you turn in UCI notation

a send button

a graphical representation of chessboard, feel free to skip this

names of players and their remaining time on chess clock (if applicable)

buttons for offering a draw or taking back previous turn

If you don't know what PGN, FEN or UCI is, just google for it, they are textual formats for representing moves and layout of a chessboard.

And that's it! Get ready to muster your chess skills against other players and strong computer engines!