Reputation: 61
I'm working on a library system in MS Access 2010. One of the challenges is that we have blind and other visually impaired users accessing the system.
They use NVDA, a screen reading software, and the issue is that the software doesn't read the content of comboboxes straight away. To get around this, one would have to press CAPSLOCK+UP or INSERT+UP (NVDA commands) which read the current line in focus. So they are currently doing this line by line manually to know where they are.
I thought of automating this through Sendkeys, but as far as I know there is no way to combine keys other than Alt, Shift and Ctrl. This is a small piece of code I'm using just so that down key drops down the combobox:
Private Sub Username_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyDown Then
Me.ActiveControl.Dropdown
End If
End Sub
I would like to add to this code so that the pressing of Up and Down keys trigger the reading of the combobox through Sendkeys of INSERT+UP or perhaps some other way I'm not aware. Is this possible? Any ideas?
Upvotes: 1
Views: 321
Reputation: 17445
I wonder if the right question is being asked. It sounds like a problem in Access that you're trying to work around. I'm not familiar with Access itself (so I probably shouldn't be commenting) but I am very familiar with accessibility.
Are you tabbing to a checkbox in a cell, or a checkbox that is in a popup dialog such as when you sort a column and want to select/deselect some of the filters? Is the problem that the checkbox itself does not have a label to be read, or that it does have a label but the label can only be read using a "read all" shortcut key (such as ins+down) or "read current" (ins+up)?
To put this in html terms, the follow code will display a checkbox that visually appears like the checkbox has a label, but the screen reader does not know there is a label.
<input type="checkbox">Do you feel well today?
The screen reader will just say "checkbox". However, if you tie the label to the checkbox using the <label>
element
<input type="checkbox" id="mycheck"><label for="mycheck">Do you feel well today?</label>
then the screen reader does know the checkbox has a label and will say "Do you feel well today?, checkbox, not checked".
I know that's a tangent from the original question, but I'm wondering if you are creating a checkbox in Access or if you are trying to navigate to a checkbox that natively exists in Access (such as the sort dialog). If you are creating a checkbox, then similar to how you have to associate a label with a checkbox in html, I wonder if there's a way to associate a label with a checkbox in Access. If so, then you wouldn't need your workaround.
Upvotes: 1