Development for the visually impaired person

Hello, I knew about OGS, this site, hearing from one of my friend. It looks very nice service. Thank you.

I am a Japanese and living in a local town; Kagawa pefecture, in Japan. My friend is a 55 years old woman and she is visually impaired since she was born, but trying to improve her igo skill since a couple of years ago.

In Japan, especially in local place, the igo infrastructure for blind person is not matured yet. So she is struggling to find the text, the way to study and even the opponent. Then,I do not know how, but she reached at this site and she has been very interested in your service.

She asked me to inquire if it is possible to develop the service for those kind of people. For example, reading the number coordinate by AI, etc…
I guess that kind of implementation would help the handicapped people all over the world.

Hopefully you would give me the answer for her, if you could add those kind of functions in the future roadmap.

Sincerely

12 Likes

There is work going on right now to support this.

I don’t think we can say “there is a definite roadmap”, because volunteers work on it, but there is definitely activity.

4 Likes

I guess it helps the roadmap to know what features would be needed and prioritised also.


There was some Go sets developed for the visually impaired I believe

It was apparently developed by a Japanese person also

I’m not sure beyond that what materials there would be, in terms of texts, and learning resources.

5 Likes

Is the best overview of progress in this area this github issue: Blind people can't play · Issue #1366 · online-go/online-go.com · GitHub

4 Likes

She knows that organization. But she told me her impression of the Japanese igo software for blind people is not so good. (It is likely can only play with the weak computer.) Probably she wants to play with the human choosing the board size; 9, 13, 19.

Thank you for your kind reply, anyway. :slight_smile:

1 Like

It might even be possible to make a minimal client, like an app, or something that connects to ogs and then doesn’t have to worry as much about modifying the existing code.

People have made all sorts of apps to connect to OGS.

I think Tsumego dragon connected to OGS to play bots?

So it might be possible that another app adds functionality or a separate (minimal) accessible app could be made potentially.

Just throwing out some ideas, since I’m not very up to date on its progress

1 Like

@benjito I wonder to what extent one could already modify Termsuji the terminal one, to have a basic thing connect to OGS, have some ascii version of the board available (it has it right?) and then add some other bits and pieces of functionality on top?

Thinking of the comment

Please add an ASCII or a table representation of Goban for blind people. We need also to interact with keyboard only.

from

and this Termsuji: Play Go in your terminal (if you really want to)

1 Like

I believe Termsuji already connects with OGS

Certainly doable to make a 3rd party app/CLI that is built with visually impaired players in mind.

Though I also think the work that @souf has been doing to make the main site meet web accessibility standards is super important. It takes more effort, but incorporating accessibility to the main site is more impactful in the long term.

6 Likes

Hey, I got notified for the termsuji mention. It’s mostly just a toy implementation for working with the API in the Go programming language, and doesn’t support the necessities like finding and starting new games. While this could be added, I’d also prefer directing that effort to improved usability for the main website. If I have some time I want to see if I can contribute to this.

7 Likes

Not sure if this could be of use to OP, but in case it can be of help, I am sharing a small contribution.

The following bookmarklet reads out the coordinate of a new move played in the game. The text is read in English, the first coordinate is a letter, the second a number.

For example, if the opponent plays at Tengen, the browser reads out “New move K 10”

javascript:(function(){function printCurrentMove() { const cur_move = global_goban.engine.cur_move; console.log(cur_move.x, cur_move.y); let readx = cur_move.x - 0 + 1 ; if(readx > 8){ readx++; } let ready = global_goban.engine.height - cur_move.y; var msg = new SpeechSynthesisUtterance(); msg.text = "New move " + String.fromCharCode(97 - 1 + readx) + ready; window.speechSynthesis.speak(msg); } global_goban.on("move-made", printCurrentMove); global_goban.on("review.updated", printCurrentMove);})();

I used the information I found in the github issue. My only small contribution was converting the coordinates in such a way that what is read out loud matches the board axis labels (letter I is skipped, for instance).

I only tested it on a few 19x19 games, but I hope that I handled correctly the height of the board for other board sizes.

7 Likes

I have now attempted to write a Japanese-version of the script, that reads out the next move played in Japanese, for example, if a move is played at Tengen (K10), it reads out “手、10、10” (edit: I changed that to read
黒 10 の 10)

Disclaimer: I do not speak Japanese, I am not sure the correct way to call out a new move, so I decided to use the word 手 (hand). If a different word or expression is better suited, please let me know. Also, from my recollection, both coordinates are called out as numbers (10, 10), not as a combination of letter and number (K 10).

As the previous script, this only works for live games.

@sakaide.igo If you need any assistance to make this work, or to try it out, feel free to contact me here on the forum or on the OGS direct message chat

javascript:(function(){function readMove() { const cur_move = global_goban.engine.cur_move; console.log(cur_move.x, cur_move.y); let readx = cur_move.x - 0 + 1 ; let ready = /* global_goban.engine.height - */ cur_move.y - 0 + 1; var msg = new SpeechSynthesisUtterance(); msg.text = (({ "1": "黒、", "2": "白、"})[cur_move.player] ?? "手、") + readx + "の" + ready; msg.lang = "ja-JP"; window.speechSynthesis.speak(msg); } global_goban.on("move-made", readMove); global_goban.on("review.updated", readMove);})();

4 Likes

If I’m reading this code correctly, it reads the column and then the row, with the 1-1 point in the upper left, correct? If so, this is correct afaik. I don’t speak Japanese either, but I think readx + "の" + ready or "黒" + readx + "の" + ready or "白" + readx + "の" + ready would be more what I’ve heard, iirc. I could maybe see a “、” after “黒” or “白”, I’d need to ask someone with better Japanese than me, but I definitely wouldn’t split up the read x + "の" + ready part

(I assume you know this, but just for clarity, 黒 means Black, 白 means White)

1 Like

I can retrieve the player colour from global_goban.engine.cur_move.player so I should be able to implement the second version of your suggestion.

However I have a doubt with regards to the 1-1 point in the upper left, because that is what is retrieved from the cur_move object, but I translate/transformed it so that it is aligned to the coordinates drawn onto the goban, which seems to work correctly for the “English version” script. If 1-1 in the upper left is what is instead correct, I would need to change that. I think it depends on what the software currently accepts as input move as well, as both need to be aligned.

Thanks!

Edit: implementing your suggestions in full, and later I can adapt if the input method also uses the coordinates as shown on the goban canvas, with 1,1 at the lower left corner

Edit 2: moved the code to the previous comment to have only one version of the Japanese script

2 Likes

日本語で書かせてください。コロナ前に近くの盲学校で子どもたちに囲碁指導をしたことが縁で視覚障害者の囲碁グループとお付き合いが始まりました。ただし彼らはネットを使ってまで囲碁を打つという感じではないのですが。わたしたちのグループは毎週土曜日午後にZOOMでおしゃべりしながらOGSのグループ Hamakaze Doyokai で対局しています。スマホでZOOMに参加いただき、かつ碁盤の真上に固定していただければ晴眼者と対局でると思います。一番現実的な方法だと思います。上のグループに参加いただければZOOMのURLをお知らせできるようにしておきます。

3 Likes

Translation by DeepL:

Let me write this in Japanese. I started a relationship with a Go group of visually impaired people when I taught Go to children at a nearby school for the blind before Corona. They don’t play Go over the Internet, though. Our group meets every Saturday afternoon on ZOOM to chat and play games with the OGS group Hamakaze Doyokai. If you join ZOOM with your cell phone and hold it right above the board, you can play with a clear-sighted player. This is the most practical way. If you join the group above, I will let you know the URL of the ZOOM.