Closed Bug 1587809 Opened 5 years ago Closed 5 years ago

Announce the CFR address bar button appearance to screen reader users

Categories

(Firefox :: Messaging System, enhancement, P1)

enhancement

Tracking

()

VERIFIED FIXED
Firefox 72
Tracking Status
firefox70 --- wontfix
firefox71 --- wontfix
firefox72 --- verified

People

(Reporter: andreio, Assigned: Jamie)

References

(Blocks 1 open bug)

Details

(Keywords: access, Whiteboard: [access-p1])

Attachments

(1 file)

Follow up to bug 1576509 + link to phabricator patch
The patch is r+ from me as soon as the unit tests are updated.

See Also: → 1576509
Keywords: access
Whiteboard: [access-p1]
  1. Previously, the label and tooltip for all recommendations was just "Recommendation", even though the icon was different for extension and feature recommendations.
    Because users might not be able to see the icon and/or determine its meaning, it is important that this is communicated in the tooltip and a11y label.
  2. Screen reader users won't know this has appeared, even though this attracts some attention visually.
    Therefore, provide a specific announcement for screen reader users when the recommendation appears.
Attachment #9100779 - Attachment description: Bug 1576509: Give the CFR address bar button a more descriptive tooltip/a11y label. Announce its appearance to screen reader users. → Bug 1587809: Give the CFR address bar button a more descriptive tooltip/a11y label. Announce its appearance to screen reader users.
Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/cbafd2e6cf53
Give the CFR address bar button a more descriptive tooltip/a11y label. Announce its appearance to screen reader users. r=andreio,fluent-reviewers,flod

Backed out changeset cbafd2e6cf53 (Bug 1587809) for browser_asrouter_cfr.js failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&searchStr=linux%2Cx64%2Casan%2Cmochitests%2Ctest-linux64-asan%2Fopt-mochitest-browser-chrome-e10s&tochange=0068e291beada0a62d05a52e1a14b6401f1d5865&fromchange=f042cb2f447c86d6e115b74ff6ff723bae5083b9&selectedJob=271669858

Backout link: https://hg.mozilla.org/integration/autoland/rev/0068e291beada0a62d05a52e1a14b6401f1d5865

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=271669858&repo=autoland&lineNumber=3551

[task 2019-10-17T10:14:57.080Z] 10:14:57 INFO - TEST-START | browser/components/newtab/test/browser/browser_asrouter_cfr.js
[task 2019-10-17T10:14:57.361Z] 10:14:57 INFO - TEST-INFO | started process screentopng
[task 2019-10-17T10:14:57.867Z] 10:14:57 INFO - TEST-INFO | screentopng: exit 0
[task 2019-10-17T10:14:57.867Z] 10:14:57 INFO - Buffered messages logged at 10:14:57
[task 2019-10-17T10:14:57.868Z] 10:14:57 INFO - Entering test bound setup
[task 2019-10-17T10:14:57.868Z] 10:14:57 INFO - Leaving test bound setup
[task 2019-10-17T10:14:57.868Z] 10:14:57 INFO - Entering test bound test_cfr_notification_show
[task 2019-10-17T10:14:57.869Z] 10:14:57 INFO - TEST-PASS | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Should have removed the notification - 0 == 0 -
[task 2019-10-17T10:14:57.869Z] 10:14:57 INFO - Buffered messages finished
[task 2019-10-17T10:14:57.870Z] 10:14:57 INFO - TEST-UNEXPECTED-FAIL | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Uncaught exception - at resource://activity-stream/lib/CFRPageActions.jsm:191 - TypeError: notificationText.attributes is undefined
[task 2019-10-17T10:14:57.870Z] 10:14:57 INFO - Stack trace:
[task 2019-10-17T10:14:57.870Z] 10:14:57 INFO - showAddressBarNotifier@resource://activity-stream/lib/CFRPageActions.jsm:191:1
[task 2019-10-17T10:14:57.870Z] 10:14:57 INFO - asyncaddRecommendation@resource://activity-stream/lib/CFRPageActions.jsm:1091:36
[task 2019-10-17T10:14:57.871Z] 10:14:57 INFO - trigger_cfr_panel@chrome://mochitests/content/browser/browser/components/newtab/test/browser/browser_asrouter_cfr.js:192:25
[task 2019-10-17T10:14:57.871Z] 10:14:57 INFO - test_cfr_notification_show@chrome://mochitests/content/browser/browser/components/newtab/test/browser/browser_asrouter_cfr.js:218:26
[task 2019-10-17T10:14:57.871Z] 10:14:57 INFO - Async
Tester_execTest/<@chrome://mochikit/content/browser-test.js:1067:34
[task 2019-10-17T10:14:57.871Z] 10:14:57 INFO - asyncTester_execTest@chrome://mochikit/content/browser-test.js:1102:11
[task 2019-10-17T10:14:57.872Z] 10:14:57 INFO - nextTest/<@chrome://mochikit/content/browser-test.js:930:14
[task 2019-10-17T10:14:57.872Z] 10:14:57 INFO - SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<@chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:805:67
[task 2019-10-17T10:14:57.874Z] 10:14:57 INFO - Leaving test bound test_cfr_notification_show
[task 2019-10-17T10:14:57.874Z] 10:14:57 INFO - Entering test bound test_cfr_notification_show
[task 2019-10-17T10:14:57.874Z] 10:14:57 INFO - GECKO(3031) | JavaScript error: resource://activity-stream/lib/CFRPageActions.jsm, line 191: TypeError: notificationText.attributes is undefined
[task 2019-10-17T10:14:57.875Z] 10:14:57 INFO - Console message: [JavaScript Error: "TypeError: notificationText.attributes is undefined" {file: "resource://activity-stream/lib/CFRPageActions.jsm" line: 191}]
[task 2019-10-17T10:14:57.875Z] 10:14:57 INFO - TEST-PASS | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Should have removed the notification - 0 == 0 -
[task 2019-10-17T10:14:57.876Z] 10:14:57 INFO - Not taking screenshot here: see the one that was previously logged
[task 2019-10-17T10:14:57.878Z] 10:14:57 INFO - TEST-UNEXPECTED-FAIL | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Should return true if addRecommendation checks were successful - false == true - JS frame :: chrome://mochitests/content/browser/browser/components/newtab/test/browser/browser_asrouter_cfr.js :: test_cfr_notification_show :: line 275
[task 2019-10-17T10:14:57.878Z] 10:14:57 INFO - Stack trace:
[task 2019-10-17T10:14:57.878Z] 10:14:57 INFO - chrome://mochitests/content/browser/browser/components/newtab/test/browser/browser_asrouter_cfr.js:test_cfr_notification_show:275
[task 2019-10-17T10:14:57.879Z] 10:14:57 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest/<:1067
[task 2019-10-17T10:14:57.879Z] 10:14:57 INFO - chrome://mochikit/content/browser-test.js:Tester_execTest:1102
[task 2019-10-17T10:14:57.879Z] 10:14:57 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:930
[task 2019-10-17T10:14:57.879Z] 10:14:57 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:805
[task 2019-10-17T10:14:57.880Z] 10:14:57 INFO - TEST-PASS | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Should have removed the notification - 0 == 0 -
[task 2019-10-17T10:14:57.880Z] 10:14:57 INFO - TEST-PASS | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Should return false if second call did not add the message - false == false -
[task 2019-10-17T10:14:57.897Z] 10:14:57 INFO - Console message: [JavaScript Error: "getScreenshot(http://example.com/) failed: TypeError: NetworkError when attempting to fetch resource." {file: "resource://activity-stream/lib/Screenshots.jsm" line: 59}]
[task 2019-10-17T10:14:57.897Z] 10:14:57 INFO - getScreenshotForURL@resource://activity-stream/lib/Screenshots.jsm:59:10
[task 2019-10-17T10:14:57.898Z] 10:14:57 INFO - async
maybeCacheScreenshot@resource://activity-stream/lib/Screenshots.jsm:112:37
[task 2019-10-17T10:14:57.898Z] 10:14:57 INFO - _fetchScreenshot@resource://activity-stream/lib/TopSitesFeed.jsm:527:23
[task 2019-10-17T10:14:57.898Z] 10:14:57 INFO - _fetchIcon@resource://activity-stream/lib/TopSitesFeed.jsm:515:16
[task 2019-10-17T10:14:57.898Z] 10:14:57 INFO - getLinksWithDefaults@resource://activity-stream/lib/TopSitesFeed.jsm:408:16
[task 2019-10-17T10:14:57.899Z] 10:14:57 INFO - asyncrefresh@resource://activity-stream/lib/TopSitesFeed.jsm:431:30
[task 2019-10-17T10:14:57.899Z] 10:14:57 INFO - onAction@resource://activity-stream/lib/TopSitesFeed.jsm:781:14
[task 2019-10-17T10:14:57.899Z] 10:14:57 INFO - _middleware/</<@resource://activity-stream/lib/Store.jsm:63:17
[task 2019-10-17T10:14:57.900Z] 10:14:57 INFO - Store/this[method]@resource://activity-stream/lib/Store.jsm:39:54
[task 2019-10-17T10:14:57.900Z] 10:14:57 INFO - customDispatch/this.placesChangedTimer<@resource://activity-stream/lib/PlacesFeed.jsm:233:22
[task 2019-10-17T10:14:57.901Z] 10:14:57 INFO -
[task 2019-10-17T10:16:27.092Z] 10:16:27 INFO - Not taking screenshot here: see the one that was previously logged
[task 2019-10-17T10:16:27.093Z] 10:16:27 INFO - TEST-UNEXPECTED-FAIL | browser/components/newtab/test/browser/browser_asrouter_cfr.js | Test timed out -
[task 2019-10-17T10:16:27.099Z] 10:16:27 INFO - Not taking screenshot here: see the one that was previously logged
[task 2019-10-17T10:16:27.099Z] 10:16:27 INFO - TEST-UNEXPECTED-FAIL | browser/components/newtab/test/browser/browser_asrouter_cfr.js | A promise chain failed to handle a rejection: notificationText.attributes is undefined - stack: showAddressBarNotifier@resource://activity-stream/lib/CFRPageActions.jsm:191:1
[task 2019-10-17T10:16:27.100Z] 10:16:27 INFO - async
updatePageActions@resource://activity-stream/lib/CFRPageActions.jsm:950:20
[task 2019-10-17T10:16:27.100Z] 10:16:27 INFO - onLocationChange@chrome://browser/content/browser.js:5745:22
[task 2019-10-17T10:16:27.100Z] 10:16:27 INFO - callListeners@chrome://browser/content/tabbrowser.js:823:31
[task 2019-10-17T10:16:27.102Z] 10:16:27 INFO - _callProgressListeners@chrome://browser/content/tabbrowser.js:837:22
[task 2019-10-17T10:16:27.102Z] 10:16:27 INFO - _callProgressListeners@chrome://browser/content/tabbrowser.js:5519:46
[task 2019-10-17T10:16:27.103Z] 10:16:27 INFO - onLocationChange@chrome://browser/content/tabbrowser.js:5939:14
[task 2019-10-17T10:16:27.103Z] 10:16:27 INFO - _callProgressListeners@resource://gre/modules/RemoteWebProgress.jsm:75:32
[task 2019-10-17T10:16:27.104Z] 10:16:27 INFO - onLocationChange@resource://gre/modules/RemoteWebProgress.jsm:117:10
[task 2019-10-17T10:16:27.104Z] 10:16:27 INFO - Rejection date: Thu Oct 17 2019 10:14:57 GMT+0000 (Coordinated Universal Time) - false == true - JS frame :: resource://testing-common/PromiseTestUtils.jsm :: assertNoUncaughtRejections :: line 265
[task 2019-10-17T10:16:27.104Z] 10:16:27 INFO - Stack trace:
[task 2019-10-17T10:16:27.105Z] 10:16:27 INFO - resource://testing-common/PromiseTestUtils.jsm:assertNoUncaughtRejections:265
[task 2019-10-17T10:16:27.105Z] 10:16:27 INFO - chrome://mochikit/content/browser-test.js:nextTest:629
[task 2019-10-17T10:16:27.106Z] 10:16:27 INFO - chrome://mochikit/content/browser-test.js:timeoutFn:1188
[task 2019-10-17T10:16:27.106Z] 10:16:27 INFO - setTimeout handler*chrome://mochikit/content/browser-test.js:Tester_execTest:1135
[task 2019-10-17T10:16:27.107Z] 10:16:27 INFO - chrome://mochikit/content/browser-test.js:nextTest/<:930
[task 2019-10-17T10:16:27.107Z] 10:16:27 INFO - chrome://mochikit/content/tests/SimpleTest/SimpleTest.js:SimpleTest.waitForFocus/waitForFocusInner/focusedOrLoaded/<:805
[task 2019-10-17T10:16:27.116Z] 10:16:27 INFO - GECKO(3031) | MEMORY STAT | vsize 20975129MB | residentFast 1087MB
[task 2019-10-17T10:16:27.116Z] 10:16:27 INFO - TEST-OK | browser/components/newtab/test/browser/browser_asrouter_cfr.js | took 90034ms

Flags: needinfo?(jteh)
Flags: needinfo?(jteh)
Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/82a89b1ae03e
Give the CFR address bar button a more descriptive tooltip/a11y label. Announce its appearance to screen reader users. r=andreio,fluent-reviewers,flod
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 72

I have verified that an audio notification is heard when a Fx72 CFR recommendation is triggered. Tested with the NVDA screen reader using Firefox Nightly 72.0a1 (Build-ID 20191124230652) on Windows 10 x64. I could not verify this on macOS and Linux as their built-in screen readers do not support this.

Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.