1. Yes the role of "unknown" is bogus and bad, but Orca is actually coping with that because the thing claims focus via accessibility events so Orca has to say *something*. 2. For non-document (i.e. native app GUI) objects, Orca presents either the label (determined by the accessible labelledby relation) or the name (determined by the accessible name property) or both. By default, it's "or" rather than "both". Orca does not have custom handling for role "unknown" (because it doesn't know what that handling should be). Thus when these mystery objects claim focus, Orca does the following: a. checks first for the labelledby relation and, if found, presents the concatenated labels to the user and considers itself done b. checks for the accessible name In the case of all the fields BUT the subject, the object with role "unknown" lacks a label. Its name is the full line, so things work. HOWEVER, in the case of the subject field, the object with role "unknown" HAS a label. The labelledby relationship points to the accessible label whose name is "Subject". So Orca considers itself done and speaks that without ever checking for the name. I don't consider this a bug in Orca. You're not telling Orca what the thing is (bogus role). And you are telling Orca that, whatever it is, you providing an explicit label to speak. Orca trusts you. ;) As for why it works (kinda) in braille: The mystery object lives in a table row. For braille, by default the full row is presented. So Orca is doing extra work trying to piece together the row contents from the accessibility tree (which, as an aside, could use some pruning if at all possible). That Orca doesn't do the same thing in speech is also not a bug. When focus moves within a table (or anywhere else for that matter), the surrounding non-focused things are not of immediate interest and thus speaking them would just be unwanted noise. As for the fix: I'm guessing the quick and dirty solution is to remove the labelledby relation. But as is hopefully more clear, there are other problems which should arguably be addressed.
Bug 1589861 Comment 15 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
1. Yes the role of "unknown" is bogus and bad, but Orca is actually coping with that because the thing claims focus via accessibility events so Orca has to say *something*. 2. For non-document (i.e. native app GUI) objects, Orca presents either the label (determined by the accessible labelledby relation) or the name (determined by the accessible name property) or both. By default, it's "or" rather than "both". Orca does not have custom handling for role "unknown" (because it doesn't know what that handling should be). Thus when these mystery objects claim focus, Orca does the following: a. checks first for the labelledby relation and, if found, presents the concatenated labels to the user and considers itself done b. checks for the accessible name In the case of all the fields BUT the subject, the object with role "unknown" lacks a label. Its name is the full line, so things work. HOWEVER, in the case of the subject field, the object with role "unknown" HAS a label. The labelledby relationship points to the accessible label whose name is "Subject". So Orca considers itself done and speaks that without ever checking for the name. I don't consider this a bug in Orca. You're not telling Orca what the thing is (bogus role). And you are telling Orca that, whatever it is, you are providing an explicit label to speak. Orca trusts you. ;) As for why it works (kinda) in braille: The mystery object lives in a table row. For braille, by default the full row is presented. So Orca is doing extra work trying to piece together the row contents from the accessibility tree (which, as an aside, could use some pruning if at all possible). That Orca doesn't do the same thing in speech is also not a bug. When focus moves within a table (or anywhere else for that matter), the surrounding non-focused things are not of immediate interest and thus speaking them would just be unwanted noise. As for the fix: I'm guessing the quick and dirty solution is to remove the labelledby relation. But as is hopefully more clear, there are other problems which should arguably be addressed.