Accessibility issue: unread flag is no longer exposed to orca or Windows screen reader

RESOLVED FIXED in Thunderbird 66.0

Status

defect
RESOLVED FIXED
5 months ago
4 months ago

People

(Reporter: jorgk, Assigned: jorgk)

Tracking

({access})

unspecified
Thunderbird 66.0

Thunderbird Tracking Flags

(thunderbird65 fixed, thunderbird66 fixed)

Details

Attachments

(1 attachment, 1 obsolete attachment)

Assignee

Description

5 months ago

According to a private message from the reporter:

This build includes the regression thus is not OK in this regard: https://download-installer.cdn.mozilla.net/pub/thunderbird/nightly/2018/06/2018-06-19-10-02-54-comm-central/thunderbird-62.0a1.en-US.linux-x86_64.tar.bz2

And all older builds including this one do expose unread flag on the message list row to orca thus these builds are OK in this regard: https://download-installer.cdn.mozilla.net/pub/thunderbird/nightly/2018/06/2018-06-18-10-08-53-comm-central/thunderbird-62.0a1.en-US.linux-x86_64.tar.bz2

Assignee

Comment 1

5 months ago

Hmm, if I add one day to the range I get:
https://hg.mozilla.org/comm-central/pushloghtml?startdate=2018-06-17&enddate=2018-06-20
https://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2018-06-17&enddate=2018-06-20

Nothing springs to mind there. Alice, could you improve the regression range by looking at the particular builds for up.

Flags: needinfo?(alice0775)
Assignee

Comment 2

5 months ago

... for us.

Comment 3

5 months ago

(In reply to Jorg K (GMT+1) from comment #1)

Hmm, if I add one day to the range I get:
https://hg.mozilla.org/comm-central/pushloghtml?startdate=2018-06-
17&enddate=2018-06-20
https://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2018-06-
17&enddate=2018-06-20

Nothing springs to mind there. Alice, could you improve the regression range
by looking at the particular builds for up.

What is the orca? And please describe detailed STR.

Flags: needinfo?(alice0775)
Assignee

Comment 4

5 months ago

I think it's a screen reader.

All I want you to do is to download the two Daily builds and check the build changesets. You do use Linux as well as Windows, no?

Assignee

Comment 5

5 months ago

If need be, Alex will answer those questions.

Comment 6

5 months ago

(In reply to Alice0775 White from comment #3)

(In reply to Jorg K (GMT+1) from comment #1)

Hmm, if I add one day to the range I get:
https://hg.mozilla.org/comm-central/pushloghtml?startdate=2018-06-
17&enddate=2018-06-20
https://hg.mozilla.org/mozilla-central/pushloghtml?startdate=2018-06-
17&enddate=2018-06-20

Nothing springs to mind there. Alice, could you improve the regression range
by looking at the particular builds for up.

What is the orca? And please describe detailed STR.

Orca is a screen reader for GNU/Linux, a tool used by blind and visual-impaired people to get a feedback of what there is on the screen via speech synthesis and/or braille display (USB device that create braille emulation). In practice, screen reader doesn't read the screen, Orca gets on Linux DBUS messages to be aware of what there are on the screen like "you're on Thunderbird", "you're on the message OBJECT SENDER DATE FLAG".

If you want to understand more precisely what accessibility means, you can show this conference called "How software accessibility works?" (in English): https://rmll.ubicast.tv/videos/comment-fonctionne-laccessibilite-des-logiciels/ (it's only 40 minutes)

Best regards,
Alex.

Updated

5 months ago
Keywords: access
Comment hidden (obsolete)

Comment 8

5 months ago

please ignore comment#7.

Using windows10 narrator (I did not try on Linux),
Mouse hover over unread icon of a message in thread pane. then the narrator
should say "unread".
(There is no specific steps、so I assumed.)

Regression window:
https://hg.mozilla.org/comm-central/pushloghtml?fromchange=d494b829635c7c908d5829c7a5a04740d88292c4&tochange=7c8d92b041349e75ebcf2f5ab7fb66e107741fad
https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=9b74b9f2939a7ae3a0ea6e711dc32ed5203e03ff&tochange=1e2c9151a09e43613a79daa8d4a94dc3e314020c

Assignee

Comment 9

5 months ago

Thank you so much, Alice. Great idea to use the tools at hand :-)

It surely looks like:
802e67be3e3e Jorg K — Bug 1466782 - Follow-up: Fix nsMsgDBView::CellTextForColumn() to use nsString parameters. r=aceman,alta88

That was only a follow-up in that bug, the two main changesets landed 12 days before on 2018-06-06.

So the question is, why did https://hg.mozilla.org/comm-central/rev/802e67be3e3e change things?

All we did is to change an internal interface to switch from raw strings to smart strings.

Which information do the screen readers use? Where has that changed?

Flags: needinfo?(richard.marti)
Flags: needinfo?(alta88)
Flags: needinfo?(acelists)
Summary: Accessibility issue: unread flag and attachment flag are no longer exposed to orca → Accessibility issue: unread flag and attachment flag are no longer exposed to orca or Windows screen reader

Comment 10

5 months ago

(In reply to Alice0775 White from comment #8)

please ignore comment#7.

Using windows10 narrator (I did not try on Linux),
Mouse hover over unread icon of a message in thread pane. then the narrator
should say "unread".
(There is no specific steps、so I assumed.)

Oh, if you need to do testing on Windows I really advise you to use NVDA: https://www.nvaccess.org/download/

I don't know any blind relying on the Narrator except for installing Windows or another screen reader.

Best regards,
Alex.

In the C++ area I can unfortunately not help.

Flags: needinfo?(richard.marti)
Assignee

Comment 12

5 months ago

It's not a C++ issue. There must he something in the UI that the screen reader picks up. Most likely visible with the inspector. So you could check the difference between those two version.

Flags: needinfo?(richard.marti)

Comment 13

5 months ago

The list of email messages is a tree table. Each row represents a message.
Each row has individual cells inside. When navigating up and down in this tree table focus moves from one row to another.
When a row receives the focus thunderbird fires respective selected or focused event according to the platform.
This is all working fine.
However as screen readers such as orca on Linux or NVDA on Windows present the selected row to screen reader users they are asking thunderbird for additional accessibility related properties so they have something usefull to present.
As I see it these rows have no accessible name associated because that accessible name is calculated (made up of) accessible names and text labels of individual row child elements.
On both linux and windows read, replied and attachment cells have no visible text or accessible Name thus that info is not populated into the row accessible name. Screen readers are looking for.

When arrowing over the read column usingthe mouse on windows, NVDA presents column header firstand then an empty cell.

Hopefully this might help a bit when figuring out what has changed.

Comment 14

4 months ago

You can easily test like this, in a console, and toggling message 0 in a folder to read/unread.
t=document.getElementById("threadTree")
c=t.columns["unreadButtonColHeader"]
gDBView.getCellValue(0, c)

  1. It should be "unreadButtonColHeader" and not ""unreadCol"" in GetCellValue(). That col should really be renamed.

I don't know why or if it fact it's true the others aren't there; it returns correctly for "attachmentCol". Maybe something isn't calling getCellValue() anymore, but I don't see why in this changeset, unless someone's c++ string foo is off..

Flags: needinfo?(alta88)
Assignee

Comment 15

4 months ago

Like this? I found two call sites.

Assignee: nobody → jorgk
Status: NEW → ASSIGNED
Flags: needinfo?(richard.marti)
Flags: needinfo?(acelists)
Attachment #9035775 - Flags: review?(alta88)

Comment 16

4 months ago

Comment on attachment 9035775 [details] [diff] [review]
1519044-fix-unread-column.patch

no, the second one shouldn't be changed, it means unread in a thread count. what i meant was that unreadButtonColHeader should globally be renamed to unreadCyclerCol and unreadCol should be renamed to unreadCountCol.

but for just this bug, the change is only required in GetCellValue().

Attachment #9035775 - Flags: review?(alta88)

Comment 17

4 months ago

r+ if you just make that change, and want it now, i'm afk.

Assignee

Comment 18

4 months ago

r+ as per comment #17.

Attachment #9035775 - Attachment is obsolete: true
Attachment #9035870 - Flags: review+
Assignee

Updated

4 months ago
Attachment #9035870 - Flags: approval-comm-beta+

Comment 19

4 months ago

Pushed by mozilla@jorgk.com:
https://hg.mozilla.org/comm-central/rev/0c6c2007dfae
Bug 1466782 follow-up: fix incorrect 'unread column' name. r=alta88

Status: ASSIGNED → RESOLVED
Last Resolved: 4 months ago
Resolution: --- → FIXED
Assignee

Updated

4 months ago
Target Milestone: --- → Thunderbird 66.0

Comment 20

4 months ago

Huge thank you to you all guys! The fix can already be seen in today's daily build. It works fine now.

Assignee

Comment 21

4 months ago

Yes, included in today's Daily. We'll fix TB 65 beta as well. TB 60 is not affected.

However, the original report was for "read" status and attachments flags. So was the attachments flag a false alarm or is there still an issue?

Summary: Accessibility issue: unread flag and attachment flag are no longer exposed to orca or Windows screen reader → Accessibility issue: unread flag is no longer exposed to orca or Windows screen reader

Comment 22

4 months ago

So what is the actual fix? Why does changing the column name fix anything? Are there any rules for the names, or some pattern that the screen readers look for?

Comment 23

4 months ago

(In reply to :aceman from comment #22)

So what is the actual fix? Why does changing the column name fix anything?
Are there any rules for the names, or some pattern that the screen readers
look for?

I don't think so, the screen reader gets the whole line (I assume the it's concatenated by Thunderbird itself).

I've requested a needinfo to MarcoZ from Mozilla accessibility team, maybe his experience and historic on the accessibility topic could help us.

Best regards,
Alex.

Flags: needinfo?(mzehe)

Comment 24

4 months ago

I can't modify the see also field: there is a related bug (not regression), the bug 448235
"Thunderbird replied and forwarded states not exposed via AT-SPI"
https://bugzilla.mozilla.org/show_bug.cgi?id=448235

Assignee

Comment 25

4 months ago

(In reply to :aceman from comment #22)

So what is the actual fix? Why does changing the column name fix anything?

     case 'u':
-      if (colID.EqualsLiteral("unreadCol") &&
+      if (colID.EqualsLiteral("unreadButtonColHeader") &&
           !(flags & nsMsgMessageFlags::Read))
       {
         nsString tmp_str;
         tmp_str.Adopt(GetString(u"messageUnread"));
         aValue.Assign(tmp_str);

Well, if you don't detect the column since you're looking for the wrong ID, then the cell is not given the value "messageUnread" and consequently the reader doesn't see it as unread.

Comment 26

4 months ago

I see now, the column name in this cpp file and the in the XUL display wasn't the same so the column wasn't populated.

OK, looks like you found the solution, cancelling NI.

Flags: needinfo?(mzehe)
You need to log in before you can comment on or make changes to this bug.