Braille Reader

Posted by JJTim on Tue 16 Jul 2019 07:22 PM — 8 posts, 29,972 views.

Germany #0
Hi all,

first of all, I apologize for not responding to your question how I was doing with the Braille Reader, Nick. I graduated from highschool and was preparing for university, so I had few time, and actually didn't play MUDs for roughly half a year.

I finally got round to playing some more, and figured out how to best use the Braille Reader (this applies to JAWS users only):

Step 1: Install and enable Braille reader plugin
Step 2: Switch to JaWS cursor
Step 3: Navigate to the Braille Reader mini window (it's probably showing "Braille Reader installed").
Step 4: Switch braille display follows active cursor off. That way, your focus will remain on the mini window. Switch to PC cursor if you need to view what you're typing. Switch back to JaWS cursor and you'll land right back on the braille reader output.

Works brilliantly. The only thing that'd make this even more comfortable would be a way to scroll back - in case you accidentally press the skip line key, or want to reread something.

I also found it more convenient to shift the keys to F7, F8, F9 - due to the space between F8 and F9, I don't accidentally clear the buffer.

Hope the belated feedback helps, and HUGE thanks again -- it's really helpful and making my MUD experience a lot more enjoyable... provided I have the time.

Yours,
Tim
Australia Forum Administrator #1
I'm glad it worked for you. For reference, the original thread was:

http://www.gammon.com.au/forum/?id=14343

Anyone wanting to install it can find it here:

Template:gitplugin=Braille_Reader
To save and install the Braille_Reader plugin do this:
  1. Go to the GitHub page: Braille_Reader.xml
  2. Select all the page and copy it to the Clipboard
  3. Open a text editor (such as Notepad) and paste the plugin into it
  4. Save to disk on your PC, preferably in your plugins directory, as: Braille_Reader.xml
    • The "plugins" directory is usually under the "worlds" directory inside where you installed MUSHclient.
  5. Go to the MUSHclient File menu -> Plugins
  6. Click "Add"
  7. Choose the file Braille_Reader.xml (which you just saved in step 4) as a plugin
  8. Click "Close"
  9. Save your world file, so that the plugin loads next time you open it.

The main GitHub page for this plugin is at: https://github.com/nickgammon/plugins/blob/master/Braille_Reader.xml.

There you will find the commit history and other information.



More details about how to use it are given in the other thread.
Amended on Tue 16 Jul 2019 08:42 PM by Nick Gammon
USA Global Moderator #2
Given that miniwindows aren't real windows and therefore don't benefit from any operating system window-system integration, I don't understand how step 3 works. Do you just flail the cursor around until you stumble on some words? Does this mean that JAWS is literally doing unstructured OCR on every pixel on the screen? If you have a photo with words drawn inside it, does JAWS detect and read the words when you view the photo?
Amended on Tue 16 Jul 2019 09:21 PM by Fiendish
Germany #3
Hey, Fiendish,

JAWS is capable of perceiving static, aka not editable text onscreen, like labels in an application. The hows and whys I don't know, because JAWS isn't open source. However I can explain the different cursors:

PC cursor is the keyboard focus (aka the cursor visible to sighted people when they type in the input field, or the position marker in menus).

JAWS cursor is the mouse pointer. I'm moving the mouse pointer until it lands on the mini window. That I can do with arrow left/right/up/down, JAWS moves the mouse pointer by a certain amount of pixels. It does so quite well, so I get text in focus rather quick. That way, I can also perceive the status bar (it's below the input field, while everything else is above input from my point of view).

Hope that clarified a bit!
Australia Forum Administrator #4

I must admit that I found the idea that JAWS could read what amounts to bitmapped text on the screen rather fantastic, however if JJTim says it works then it must do that somehow.

Conceivably it could do OCR on a small portion of the screen fairly quickly, as the text is likely to be sharp (unlike a scanned page), horizontal, and with good contrast.

I’ve done a search for how screen readers work without getting much technical information back in response.

Having said that, looking at this web page:

https://support.freedomscientific.com/Training/Surfs-Up/Navigating.htm

It says:

JAWS and MAGic cannot read graphic text. The text you are hearing for this image is called alternate text. Web page authors use alternate text to describe images.

Also here:

https://webaim.org/techniques/screenreader/

  • Screen readers will read the alternative text of images, if alt text is present. JAWS precedes the alternative text with the word “graphic.” If the image is a link, JAWS precedes the alternative text with “graphic link.”
  • Screen readers ignore images without alternative text and say nothing, but users can set their preferences to read the file name.

Miniwindows are basically embedded images, so I’m puzzled as to how this is working, unless recent versions are more sophisticated.


For one thing, the MUSHclient window isn’t HTML at all, so the issue of “alternative text” for an image wouldn’t apply at all.

Amended on Wed 17 Jul 2019 09:55 AM by Nick Gammon
USA Global Moderator #5
Quote:
like labels in an application

From a technical standpoint, labels in an application are not even remotely the same as bare pixels in an image, which is what miniwindows are. Application labels have operating system support as selectable objects. Miniwindows do not. I'm at a complete loss on the explanation for this given that freedom scientific themselves seem to say that this shouldn't work.
Amended on Wed 17 Jul 2019 07:03 PM by Fiendish
Australia Forum Administrator #6
They may mean that if you put the cursor over an image of a cat it won't read out "image of cat".

The videos I've seen which claim to demonstrate JAWS seem to be about 10 years old, blurry, and not very helpful in terms of demonstrating what it does exactly.

Whilst I can believe it might be more feasible to decode the HTML (text) in a web page and read it out, with all the Javascript and conditional stuff in a web page it would be quite hard. And linking the exact part of the HTML document to where the user scrolls his JAWS cursor to would be very hard. So maybe it does just OCR off the screen image.
Germany #7
Okay, wait a minute.

The excerpt you pasted, Nick, is refering to images in HTML. These have, in theory, and alt attribute. So, JAWS would go like: If image has alt text speak that, else if setting is to speak the path of the image speak that (from the src attribute), else ignore the image.

That is in HTML, though. HTML is an entirely different story. I can actually explain how that works:

Any HTML web page can get represented in XML, and actually does get represented like that in sitemaps and XMLHTTPrequests. JAWS and NVDA use this fact to create a virtual document based on the actual page, which is (and that's important) not based on visual styling, but on the order elements appear in in the XML representation of the document.

And yes, JavaScript (especially animations) can mess this up; there are lots of ways web devs can break web accessibility, but there are also good guidelines out there (IBM accessibility guideline, WCAG 2.0...). If you have any questions regarding web accessibility, I'm happy to answer them as I do web development since roughly 7 years.

Now you say your mini windows are bitmaps, aka images. So I guess either there's some textual representation of the bitmap that JAWS can analyze or it actually does OCR -- very quick and very effective, then, though.

I have seen some OCR results. They often got characters wrong. Nothing like that happens in MUSHclient. I have no idea why it works, but it does.