473,378 Members | 1,280 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,378 software developers and data experts.

-> SCREEN READER DETECTION <-

Hi,

Is it possible to use javascript to detect if a screen reader is
running a on a users machine?

I know that on a pc, screen readers use the MSSA interface. Is there
a way to detect whether this is operational or not?

Thanks,

Ben
Jul 23 '05 #1
8 3461
Hi Ben,

As far as I know its probably impossible to detect whether its running
or not, but you could see whether it is installed. The problem is that
you will have to find the class ID (CLSID). This is usually in the
window registry. Open the registry editor ('regedit.exe') and open
HKEY_CLASSES_ROOT

Below all the extentions are lists of objects. Most objects have
classid's (CLSID). For example, Word.Application. You can copy the
classID when you view it.

The following script detects whether word and acrobat are installed on
your computer:

<SCRIPT LANGUAGE="JavaScript">

monitor = new Array();

function checkApplication(clsId, name) {
s = '<object id="test_object'+monitor.length+'" '
+'classid="clsid:'+clsId+'" '
+'codebase="view-source:about:blank">&nbsp;</object>';
document.writeln(s);
monitor[monitor.length] = name;
}

function check() {
for (i=0;i<monitor.length;i++) {
if (monitor[i]!=null) {
obj = document.getElementById('test_object'+i);
if (obj) {
if (obj.readyState!=0) {
alert("'"+monitor[i]+"' is on this machine");
}
monitor[i] = null;
}
}
}
}
checkApplication('000209FF-0000-0000-C000-000000000046',
'Microsoft Word');
checkApplication('B801CA65-A1FC-11D0-85AD-444553540000',
'Acrobat(Reader)');
window.setInterval('check();', 1000);
</SCRIPT>

Well, I hope this helps a bit.

Good luck,
Vincent

Ben Baker wrote:
Hi,

Is it possible to use javascript to detect if a screen reader is
running a on a users machine?

I know that on a pc, screen readers use the MSSA interface. Is there
a way to detect whether this is operational or not?

Thanks,

Ben


Jul 23 '05 #2
ne******@hotmail.com (Ben Baker) wrote in message news:<cb**************************@posting.google. com>...
Hi,

Is it possible to use javascript to detect if a screen reader is
running a on a users machine?

I know that on a pc, screen readers use the MSSA interface. Is there
a way to detect whether this is operational or not?


JavaScript do this cannot without some sort of (most likely insecure)
extension to the browser to access the windows api.

JavaScript can only talk within the browser windows with certain
restictions.

JsD
Jul 23 '05 #3
On 12 Jul 2004 03:24:49 -0700, Ben Baker wrote:
Is it possible to use javascript to detect if a screen reader is
running a on a users machine?


Why? It may sound like a trivial question,
but often when something is not available,
there is some form of strategy you can take
depending on what you want to achieve.

Which leads us to - what do you want to achieve?

--
Andrew Thompson
http://www.PhySci.org/ Open-source software suite
http://www.PhySci.org/codes/ Web & IT Help
http://www.1point1C.org/ Science & Technology
Jul 23 '05 #4
Hi everyone,

First of all thanks for all of your replies.

What I am trying to achieve is to detect a screen reader's presence, so
that i may load a specific page based on whether it returns true or
false.

Thanks,

Ben ;]

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 23 '05 #5
On 13 Jul 2004 21:01:11 GMT, Ben Baker wrote:
What I am trying to achieve is to detect a screen reader's presence, so
that i may load a specific page based on whether it returns true or
false.


(groans) Specifically *what* will be different
about the specific pages?

Do you have the URLs? An URL for each page
would be most informative, whereas your
response, as it were, ..wasn't.

--
Andrew Thompson
http://www.PhySci.org/ Open-source software suite
http://www.PhySci.org/codes/ Web & IT Help
http://www.1point1C.org/ Science & Technology
Jul 23 '05 #6
Forgive my insolence Andrew *Shudders in acute embaressment*

THE SCENARIO:

A user is going through a series of HTML pages in a lesson, say ten
pages in total.

By clicking on the 'Next Page' button they are about to leave page 2 and
enter page 3.

However page 3 needs to do a check to see whether there is a screen
reader present. If there is then it will load a text-only version of
the page, else it will load a page with a SWF file in it.

I am aware that accessibility is available in the latest flash player,
but for my purposes this is not an option.

Thanks again,

Ben

:::: YOU CAN'T POLISH TURD. ::::

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 23 '05 #7
On 14 Jul 2004 07:45:47 GMT, Ben Baker wrote:
..page 3 needs to do a check to see whether there is a screen
reader present. If there is then it will load a text-only version of
the page, else it will load a page with a SWF file in it.
So, you are suggesting that there are clients
who have screen readers, yet they have flash
installed? [ No, I am not especially familiar
with this area, so my expectation might be wrong ]
I am aware that accessibility is available in the latest flash player,
but for my purposes this is not an option.


So, it is for people with screen readers installed,
who can use *accessible Flash* (and therefore have it
installed) for which you need this functionality?

[ Ultimately, I think the best, most reliable and
friendliest way to 'detect which page' is using the
'wetware API'.

Present the user with 2 links and describe one as
'Text based' and the other as 'Flash enhanced',
even if the user selects the wrong one, they simply
hit the 'back' button and follow the other.

The problem with a technical solution is that if
it breaks, there is very little the end user can
do to fix it. ]

...and while I remember. Could you refrain from
spelling your subject in capitals in future threads
you start? And especially drop the '->'.. ;-)

--
Andrew Thompson
http://www.PhySci.org/ Open-source software suite
http://www.PhySci.org/codes/ Web & IT Help
http://www.1point1C.org/ Science & Technology
Jul 23 '05 #8
Hi Andrew,

Thanks for the reply Andrew, that was the conclusion/solution I had come
to; a screen with two links for text only & flash.

I am not quite sure how my thread ended up here as I entered it in
Google groups... however if i post again i will refrain from -> THIS <-

All the best,

Ben ;]
:::: YOU CAN'T POLISH TURD. ::::

*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
Jul 23 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Donald Firesmith | last post by:
I am having trouble having Google Adsense code stored in XSL converted properly into HTML. The <> unfortunately become &lt; and &gt; and then no longer work. XSL code is: <script...
5
by: MyndPhlyp | last post by:
I've been busting my head trying to figure this out for quite some time. With IE6 and NS7, no problems. I can simply code the HTML <img height="100%"> and be done with it. But NS4 and NS6 (and...
4
by: Bruce Wolfe | last post by:
We are developing an application using C#.net and we need to provide support for screen readers. Jaws works pretty good except that it can't read group box labels on dialog forms. The same version...
5
by: Chris | last post by:
After exhausting my search on the MS website, I can't find a straight answer. I fin dit hard to believe that MS left our something so useful in ASP.NET as screen resolution detection. Problem:...
3
by: RC | last post by:
I have a very sime html table like <html><head><title>My Table</title> <style> input { margin: 0; padding: 0; border-width: 0; text-indet: 0; text-align: left } </style></head><body> <table...
15
by: kernel.lover | last post by:
Hello, i want to know to have multiple clients connects to same server program does following is correct code #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.