Closed Bug 1629295 Opened 6 months ago Closed 5 months ago

Editing of e-mail addresses in the "To" field no longer accessible

Categories

(Thunderbird :: Disability Access, defect, P1)

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 77.0

People

(Reporter: ali-savas, Assigned: aleca)

Details

(Keywords: access)

Attachments

(1 file, 1 obsolete file)

The Problem

Since some beta versions of Thunderbird it is no longer possible to edit email addresses that have already been entered. Also, the input fields for the screen reader are not labeled correctly.

steps to reproduce

  1. Launch Thunderbird.
  2. Compose a new mail with CTRL+N
    You are now in the "To" field. The screen reader should say "To Edit Field", but it says something like "Empty To input field Edit Field".
  3. Enter an e-mail address, press TAB and then press Shift+TAB
    You are back in the "To" field, the screen reader should say the name of the edit field and the e-mail address you just entered. Instead, it says something like "To input field with one address Edit Field".
    Now try to edit the e-mail address with the arrow keys. Unfortunately this fails.

Note

The tests just described were performed using JAWS 2020.2003.13 and Thunderbird 76.

Assignee: nobody → alessandro
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Windows 10 → All
Hardware: Desktop → All

Hi, thanks for reporting this issue.

The interface in which we handle addresses in the compose window has changed.
Now, after an address is typed an the user presses ENTER or TAB, the address gets converted into a standalone component and moved outside the input field.
This was done in order to enable writing multiple addresses without creating a separated row for each address, and to solve various other problems when handling multiple addresses, the necessity to move chunks of address from the To to the CC field, and so on.

When you SHIFT+TAB to focus on the "To" input field, the accessibility label should read "To input field with one address" or if you have more it will give you the exact number.
All those addresses are listed to the left of the input field, which you can focus on by using the left arrow key.
Focusing on the address pill should read its address, and by pressing ENTER you can edit that address.

We definitely need to improve the accessibility here, first of all by removing that redundant "...Edit Field" at the end of everything, and then by providing guiding instructions for screen readers, since the overall approach and workflow changed.

Proposed changes

  • Focusing on an input field should read "Empty To input field".
  • Focusing on an input field with written addresses should read "To input field with 3 address, use left arrow key to focus on them".
  • Focusing on an address pill should read "email@example.com, 1 of 3 addresses. Press Enter to edit or Delete to remove".

What do you think?

Sounds acceptable to me at first. Although I have the feeling that the application does some things here that the screen reader should actually announce on its own. For example, JAWS includes such a feature called "Tutor Messages". These tutor messages come only when a control known to the screen reader is encountered and the user has turned it on. In list views, for example, you will hear "To move through items use the arrow keys. You may also hear "To edit the selected item press f2." Basically I am satisfied with the suggestion.

It would be much better if you could hear something like: "E-mail@example.com 2 of 3" in the field. This would also let the user know that 3 e-mail addresses have been entered. You can leave the text of how the user has to navigate here as it is.

The Tutor Message feature is interesting, I wonder if we can do something to enable it, I'll do some research and see if I can implement it on this components by using some dedicated attributes.

Great suggestion regarding the addition of the email counts when focusing on an address pill.

I'll work on this during this week.
Cheers

Status: NEW → ASSIGNED
Keywords: access
Priority: -- → P1

As far as I know, you can't just let other applications modify the JAWS user settings, even if it would be temporary. The most you could do with JAWS is to use the jfwapi.dll, and NVDA has a control feature like that. However, I think it would be an exaggeration to do something so complex for such an announcement.

But maybe we are lucky and there is another way to implement such messages.

That's exactly what we need, when we type in the email addresses, we should be able to shift tab, back to the to edit field and jaws and NVDA, should read the email addresses that you type.

(In reply to Bob Edenhofer from comment #5)

That's exactly what we need, when we type in the email addresses, we should be able to shift tab, back to the to edit field and jaws and NVDA, should read the email addresses that you type.

This is exactly what I meant yesterday with my suggestion. It is enough if the screen reader says "e-mail@example.com 1 of 2". If this is an "input field" the screen reader does not have to be told again by the application via a help text. The screen reader knows this by itself if the correct controls have been used.

Well eventualy, I want to learn to write the code, to develop thunderbird, and then I could make it accessible with screenreaders, shoot! I would be changing the interface with in the options dialog box, back to a classic user interface, with firefox and thunderbird, that's for sure! perhaps you can join my mozilla group on groups.io send an email to mozilla+subscribe@groups.io with the word subscribe, in the subject line, leaving the message body empty.

Hey Ali Savas, I'm working on this and I'll have a patch soon.
Would you be able to test it if I provide you a link to a test build ready to install? Which operating system are you using?
Or maybe are you able to build Thunderbird locally?

I'm using Thunderbird 76 Beta1 (64 bit) on Windows 10, if you give me a link I should be able to test it. I could also replace a file (a DLL or something similar) if that works.

Unfortunately I cannot compile software on my PC.

What I would like to see in Bugzilla in the future, is for us blind indaviduals, to have the ability, to delete our Bugzilla account, instead of disabling it, now this is a suggestion. And how do you compile software, on your PC, wouldn't that corrupt your operating system if it's windows like your system restore feature, as well as installing and uninstalling programs? We half to look at all the proes and cons here, especially, us blind indaviduals.

So, apparently different screen readers return different outputs.

For example, I'm using Orca, which is the screen reader available in Ubuntu, and setting the artia-label attribute overrides the default reading of the field, so I only get "Empty To input field", instead of what I get from JAWS, which is "Empty To input field Edit Field".

This is tricky.

Could you program it so that the field is simply the label "To"? The rest would have to be programmed so that the screen reader knows that the field can contain multiple values. e.g. "To: e-mail@example.com, 1 of 2". The screen reader knows what the control is, as it already does. There is no need to tell it again that this is a field or input field or an edit field.

Indeed, that's what I'm trying to do, but being sure we're not affecting the outcome of other readers on Linux or macOS.
Ah, the joy of multi-platform development.

For me, it could also be enough if the field was simply called "to", as it used to be. The user just have to know that he can navigate in the field with the arrow keys.

That's the goal as I'm updating the fields in this way.

When the user focuses on an input field, it should read:

  • "To" if no address is present.
  • "To with one address, use left arrow key to focus on it." if one address is present.
  • "To with 3 addresses, use left arrow key to focus on them." if more addresses are present.

Then, focusing on an address pill should read:

Each screen reader will then add at the end of those string the type of element you're focused on, in case of JAWS it would be "Edit field".

Well see what you can do, and Alessandro, I also need to talk with you about something, can you make the options dialog box under tools more accessible for screenreaders? And my second question is, when you go to type in your incoming and outgoing server settings for pop3, our screenreaders, act like it's automatically filling in the information, instead of letting us type the letters, like for example, if we type in the letter s, it automatically says smtp.gmail.com for the outgoing server settings, and also when we type in the incoming and outgoing port, it says auto detect, that's what jaws and NVDA says, another words, we can't type it in.

Bob, excuse me, but this doesn't belong here. These things should be discussed offline. This is a bug report and only this should be discused here.

Attached patch 1629295-compose-a11y.diff (obsolete) — Splinter Review

Magnus, this is mostly a review to be sure the strings and the methods used are correct.
I launched a try-run to generate a Window install so Ali Savas can test it, so even if this gets an r+, I won't mark it for check-in until we get the green light from him.

Attachment #9140865 - Flags: review?(mkmelin+mozilla)

Ali, here's a target installer for a quick build I launched with the patch applied: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/e50wajrBQE2cmE9q4mXUyA/runs/0/artifacts/public/build/install/sea/target.installer.exe

You can install it and test it as it will install a completely separate version of Thunderbird, and it shouldn't affect your 68 or beta version.
I'd recommend going through the setup process and not reuse your existing profile to prevent issues.

Comment on attachment 9140865 [details] [diff] [review]
1629295-compose-a11y.diff

Review of attachment 9140865 [details] [diff] [review]:
-----------------------------------------------------------------

::: mail/locales/en-US/messenger/messengercompose/messengercompose.ftl
@@ +8,5 @@
>  remove-address-row-type = Remove the { $type } field
>  
>  #   $type (String) - the type of the addressing row
>  #   $count (Number) - the number of address pills currently present in the addressing row
>  address-input-type = { $count ->

since you change the value, you need to change the "key" as well. But this is very poorly named anyway. Maybe "address-input-type-aria-label

@@ +17,5 @@
> +
> +#   $email (String) - the email address
> +#   $count (Number) - the number of address pills currently present in the addressing row
> +pill-aria-label = { $count ->
> +    [one]   { $email }, press Enter to edit or Delete to remove.

I'm not sure, should it be with colon, and perhaps not "or"? Like

foo@example.com: press Enter to edit, Delete to remove
Attachment #9140865 - Flags: review?(mkmelin+mozilla)

Seems to work out the way we imagined it would, although it is very unusual for me. I'm still used to the old method. :)

Thanks Ali for the feedback.
Indeed, it's a different workflow and it'll need a couple of runs to get used to it, as long as we don't let the user feel lost or not knowing what to do.
I will update the patch as suggested by Magnus and then we will push this for the next beta.

Attachment #9140865 - Attachment is obsolete: true
Attachment #9141033 - Flags: review?(mkmelin+mozilla)
Attachment #9141033 - Flags: review?(mkmelin+mozilla) → review+
Target Milestone: --- → Thunderbird 77.0

Pushed by geoff@darktrojan.net:
https://hg.mozilla.org/comm-central/rev/5aa91a099bfc
Improve a11y for screenreaders in the messenger compose addressing rows. r=mkmelin

Status: ASSIGNED → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.