Closed Bug 104477 Opened 23 years ago Closed 23 years ago

If screen reader is present, actively append word "checked" or "unchecked" to checkboxes in components list

Categories

(SeaMonkey :: Installer, defect)

x86
Windows 2000
defect
Not set
major

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.0

People

(Reporter: aaronlev, Assigned: curt)

References

Details

(Keywords: access, Whiteboard: [adt1 rtm])

Attachments

(3 files, 4 obsolete files)

We use a listbox with checkboxes in them. The checkboxes are drawn on the screen, and for some reason the text isn't available to the screen readers. We can find out if a screen reader is present by calling SystemParametersInfo() with the SPI_GETSCREENREADER option. * If a screen reader is present , we can append a i18n string "- checked" or "- unchecked" to the text for each component name. That solves the problem of the screen reader not knowing that it's on a checkbox. * We need to figure out what's wrong with the way we're displaying the text on screen - why can't the screen reader see it?
Severity: normal → major
Keywords: access, fcc508
Don't worry about the second bullet point above, I found a screen reader that reads the text fine. Changing the bug summary to accurately reflect the task in the first bullet point. If SystemParametersInfo() with the SPI_GETSCREENREADER option tells us we're running with a screen reader, use text instead of just the image to indicate whether the checkbox is checked or unchecked. Syd, can we prioritize this one? It will make installer accessible, which is crucial.
Summary: Make list of checkboxes for what to install accessible → If screen reader is present, actively append word "checked" or "unchecked" to checkboxes in components list
reassigning to Curt.
Assignee: ssu → curt
Aaron, I'm not familiar with screen readers and how they work. Think you could demo this to me so I can see exactly what the problem is? I'll be around tomorrow (Tuesday) after 3:00 and all day Wednesday if you can find a little time for me.
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla0.9.6
Target Milestone: mozilla0.9.6 → mozilla0.9.7
Target Milestone: mozilla0.9.7 → mozilla0.9.8
Keywords: nsbeta1
Target Milestone: mozilla0.9.8 → mozilla0.9.9
QA Contact: bugzilla → gbush
plussing
Keywords: nsbeta1nsbeta1+
Target Milestone: mozilla0.9.9 → mozilla1.0
Whiteboard: [adt2]
is this really nsbeta1+ ?
This is really nsbeta1+, because otherwise screen reader users can't use the installer. They won't get very far if they can't install, will they? We could also use regular checkboxes, instead of checkboxes drawn on the screen with graphics, if we wanted to solve this a different way.
Henrik: nsbeta1+ means important to Netscape, which sometimes (often?) has different priorities than the Mozilla community. In the case of "sec508" bugs those are things that AOL feels it needs to do to comply with the "Americans with Disabilities Act".
Whiteboard: [adt2] → [adt2][mcp-working]
Aaron, I'm working on this bug now, and have a couple questions for you: - Does the "- checked" need to actually be visible? I'm thinking about forcing it offscreen by putting a bunch of spaces between it and the visible text. Then I don't have to do any special check for the text reader. Will that work? - Does this have any international implications? Do all readers look for the same text regardless of the language the software is in. I.e., will these two strings need translated?
Yes, it does need to be internatitionalized :( Also, you might as well keep it onscreen, since I don't know the answer, and this will only take affect in the rare case that a screen reader is present.
Whiteboard: [adt2][mcp-working] → [adt1 rtm][mcp-working]
Attached patch Patch 1 (obsolete) — Splinter Review
I haven't figure out exactly how to use SystemParametersInfo, but all the rest of the functionality is in place and, since I'm going to be away for a week, I want to get that reviewed. I plugged in a variable called bTestParameter which fakes the reader, but at compile time, for testing.
Attached patch change to install.it (obsolete) — Splinter Review
looks like curt missed this little change in install.it We need to get this part landed today for the string freeze.
Attached patch patch for mozilla side (obsolete) — Splinter Review
Please check in the strings for this patch today if possible. We'll adt1.0.1+ the bug when the rest of the bug is finished.
Keywords: mozilla1.0.1+
what is the difference between = and =- ?
The hyphen is part of the text of the string. It probably should be "= - ", but there's a chance the code (which I haven't looked at) is putting the extra space after the existing text. I'd have preferred something like [Checked] which would be less likely to look like part of the description but I guess it doesn't really matter since most folks won't see it.
I checked the code, it is adding the hyphen and the space. So the correct strings don't contain the hyphen.
Attached patch correct stringsSplinter Review
the netscape patch is identical
Attachment #86124 - Attachment is obsolete: true
Attachment #86127 - Attachment is obsolete: true
Attached patch netscape versionSplinter Review
Comment on attachment 86167 [details] [diff] [review] correct strings sr=dveditz
Attachment #86167 - Flags: superreview+
Comment on attachment 86180 [details] [diff] [review] netscape version sr=dveditz
Attachment #86180 - Flags: superreview+
Still need this part: We can find out if a screen reader is present by calling the win32 function SystemParametersInfo() with the SPI_GETSCREENREADER option. See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcesdkr/htm/_wcesdk_win32_systemparametersinfo.asp
right now we're just trying to land the strings that need to be localized. The bug is still a ways from being fixed.
Thanks for landing the strings now.
Attached patch Patch 2 (obsolete) — Splinter Review
This should be complete. I don't have a screen reader to test with, but I faked on a couple different ways and am convinced this is the real deal.
Attachment #85522 - Attachment is obsolete: true
Please get the r=/sr=. Aaron, do you have the ability to try the patch out?
I'll try this out today or tomorrow.
Comment on attachment 87319 [details] [diff] [review] Patch 2 r=dprice
Attachment #87319 - Flags: review+
Comment on attachment 87319 [details] [diff] [review] Patch 2 >+ SendMessage(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, (LPARAM)tchBuffer); >+ >+ if(gSystemInfo.bScreenReader) >+ { >+ lstrcat(tchBuffer, " - "); Busted by the tab police -- please clean these up here and later on in the file. sr=dveditz if aaronl says it works for him.
Attachment #87319 - Flags: superreview+
I have tried out the patch. It turns out that the Windows 2000 utility called "Narrator" under Start - Accessories - Accessibility, is good enough to test with. We must be exposing these strings in some additional way, other than just drawing them on the screen. I say this because, although "checked" and "unchecked" appear on the screen - Narrator is reading the list items without that part. Give it a try and you'll see what I mean.
Comment on attachment 86167 [details] [diff] [review] correct strings (In case you didn't land this already and you still can, although it looks like chofmann added a + to the bug for this patch.) Please land this on the 1.0.1 branch. Once there, remove the "mozilla1.0.1+" keyword, and add the "fixed1.0.1"
Attachment #86167 - Flags: approval+
Wait, please try my Microsoft Narrator test first described above before checking in. There seems to be some work left to be done.
I tried out Narrator (which would have been a lot easier if I had even one machine with speakers!) and it appears that I'm going to have to back way up on this bug. The text cannot be changed just when the window is being redrawn, it must actually be change in the listbox object for the screen reader to pick it up. That is significantly more work than I thought I was going to get away with. But with Narrator, I do have a real test environment now.
Whiteboard: [adt1 rtm][mcp-working] → [adt1 rtm][ETA-6/24][mcp-working]
Whiteboard: [adt1 rtm][ETA-6/24][mcp-working] → [adt1 rtm][ETA-6/25][mcp-working]
Attached patch Patch 3Splinter Review
The most significant differences between this and Patch 3 are in SiCNodeSetAttributes() and, to a lesser degree, in lbAddItem.
Attachment #87319 - Attachment is obsolete: true
Comment on attachment 88968 [details] [diff] [review] Patch 3 looks great Curt. Good job! r=ssu
Attachment #88968 - Flags: review+
Comment on attachment 88968 [details] [diff] [review] Patch 3 sr=dveditz
Attachment #88968 - Flags: superreview+
Keywords: adt1.0.1
adt1.0.1+ (on ADT's behalf) approval for checking into the 1.0 branch. pls check this in to the trunk and branch asap, the replace mozilla1.0.1 with fixed1.0.1 keyword. thanks!
Blocks: 143047
Keywords: adt1.0.1adt1.0.1+
Whiteboard: [adt1 rtm][ETA-6/25][mcp-working] → [adt1 rtm] [ETA 06/25] [mcp-working]
Checked in on trunk and branch.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Keywords: adt1.0.1+fixed1.0.1
Resolution: --- → FIXED
Whiteboard: [adt1 rtm] [ETA 06/25] [mcp-working] → [adt1 rtm]
Keywords: mozilla1.0.1+
I hesitate to mention this but, in talking with Grace about testing this bug it suddenly occurred to me that Checked and Unchecked are not the only states the listbox items can be in. There is also Enabled and Disabled. A person who can now hear whether an item is checked still has no way to know whether it is enabled. Is that acceptable? (It is hard to quit thinking like a sighted person when that is what one is!)
The screen reader can notice the "grayed out font", which is typically used to indicated the disabled state. The problem with the checkbox was that it was made with a graphic. I think we're okay, but I'll double check with the screen reader vendors.
I like that answer. (Picture me wiping sweat from brow.) I hope your vendors agree!
Ok, I just tried using microsoft narrator, it won't read disabled, basically disabled appears to be tantamount to invisible. Which might be reasonable. What does a user gain by being told about disabled options? If you can't trigger the item. The most enjoyable example of this is print settings file>print>properties>advanced, you get this nice tree, at each level narrator tells you what level you're on and how to collapse or expand. I wasn't able to get narrator to tell me about any of the disabled options in the print settings dialog boxes. Note however that nc4 is really broken, when i select Leave as, it says: Radio button, checked, to select a different item in the cluster, use the arrow keys. However, the arrow keys don't do anything :-) It should have said: Leave As, Radio Button, checked, ... and of course the arrow keys should have worked :-).
Timeless, Narrator isn't a true screen reader. Blind users don't use it unless absolutely forced too (even then probably won't). WindowEyes, JAWS, Hal, etc. are what's actually used in the real world. Narrator was useful to test in this situation.
verified on branch 2002070308 and trunk 2002070308
Status: RESOLVED → VERIFIED
Bug 172583 has been added to the database
Blocks: 172583
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: