I tried to find information on writing web pages that would be accessible to the blind, and have not yet found a lot of useful information. In particular, I am looking for how to give specific instructions for screen readers in general, on how to read the contents of my pages. I know that overriding user preferences for a screen reader can be perceived as irritability, but the content that I want to make available is poetry, plays, stories, and other types of creative writing. Since there are often many different characters in one document, it would be great if I had a way to indicate different characteristics of the voice of the screen readers, so that the blind (or anyone really) able to hear is distinguished by separate speaking characters. Right now I am using a storyteller to tell a listener who says he is very unnatural and distracting.
An example of content might be:
Brenda: Hey Jimmy! What?
Jimmy: Brenda! Look look! You look like a lady and I sound like a man!
Slow Kid: Oh ... and I sound very slow ...
So, is there a way to define tags, attributes, or somehow attach a script element to elements in order to change the voice of speech on specific content on a web page? Is there a specific standard that I can work with to present spoken text in a similar way in IE and Firefox? Regarding support for native browsers, I saw several plugins for reading from the screen, but I'm curious if there is text-to-speech support built into IE or Firefox, so I do not need to install the plugin.
Update: A hacker way to do this in Firefox:
If a simpler method is found, give a better answer!
Here's something a little promising ... "speak.js" to quote:
"speak.js is an eSpeak port, an open source speech synthesizer, from C ++ to JavaScript using Emscripten."
article on talk.js on the Mozilla Dev blog .
Source on language.js' GitHub page : quoting kripken / speak.js from readme.markdown:
"Options
You can also specify some parameters with call speak () by doing
speak('hello world', { option1: value1, option2: value2 .. })
The following options are available:
amplitude: How loud the voice will be (default: 100) pitch: The voice pitch (default: 50) speed: The speed at which to talk (words per minute) (default: 175) voice: Which voice to use (for a non-default voice, requires you to build speak.js to include the proper data. See Language Support below) (default: en/en-us) wordgap: Additional gap between words in 10 ms units (default: 0) noWorker: Do not use a web worker (see below in 'Architecture')
for example
speak('hello world', { pitch: 100 })
will speak in a very high voice.
Note:
This only works in Firefox. Although this is not quite what I was looking for, it seems quite possible to use javascript to parse through HTML and use attributes to run the talk command with any parameters I would like. It will take a bit of work, but in the end, I can finish the bot, which may try to read the page in context !: D