tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 3e897c3b0cfada1e877fac66da47f63774c969e7
parent b4b15b854d83bf32f3307b3f80de415794a1cef4
Author: Giulia Cardieri <gcardieri@mozilla.com>
Date:   Fri,  5 Dec 2025 19:03:49 +0000

Bug 2002479 - Update chatbot shortcut test due to a11y regression bug. r=yjamora,ai-frontend-reviewers,fluent-reviewers,flod

Differential Revision: https://phabricator.services.mozilla.com/D274165

Diffstat:
Mbrowser/components/genai/GenAI.sys.mjs | 17++++++++++++++++-
Mbrowser/components/genai/tests/browser/browser_chat_shortcuts.js | 7++++---
Mbrowser/locales/en-US/browser/genai.ftl | 3+++
3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/browser/components/genai/GenAI.sys.mjs b/browser/components/genai/GenAI.sys.mjs @@ -395,7 +395,18 @@ export const GenAI = { } aiActionButton.initialized = true; + const setAIButtonAriaLabel = chatProvider => { + document.l10n.setAttributes(aiActionButton, "genai-shortcut-button", { + provider: chatProvider.name, + }); + }; + const document = aiActionButton.ownerDocument; + const initialChatProvider = this.chatProviders.get(lazy.chatProvider); + setAIButtonAriaLabel(initialChatProvider); + const initialChatProviderName = { + name: initialChatProvider.name, + }; const buttonActiveState = "icon"; const buttonDefaultState = "icon ghost"; const chatShortcutsOptionsPanel = document.getElementById( @@ -460,8 +471,12 @@ export const GenAI = { const vbox = chatShortcutsOptionsPanel.querySelector("vbox"); vbox.innerHTML = ""; - const chatProvider = this.chatProviders.get(lazy.chatProvider); const showWarning = this.isContextTooLong(aiActionButton.data.selection); + const chatProvider = this.chatProviders.get(lazy.chatProvider); + + if (initialChatProviderName !== chatProvider.name) { + setAIButtonAriaLabel(chatProvider); + } // Show warning if selection is too long if (showWarning) { diff --git a/browser/components/genai/tests/browser/browser_chat_shortcuts.js b/browser/components/genai/tests/browser/browser_chat_shortcuts.js @@ -137,9 +137,10 @@ add_task(async function test_show_shortcuts() { ); let beforeClick = Glean.genaiChatbot.shortcutsExpanded.testGetValue(); - EventUtils.sendMouseEvent({ type: "click" }, shortcuts); + shortcuts.click(); await BrowserTestUtils.waitForEvent(popup, "popupshown"); Assert.equal(popup.state, "open", "Popup open with click"); + let afterClick = Glean.genaiChatbot.shortcutsExpanded.testGetValue(); Assert.equal( afterClick.length, @@ -213,7 +214,7 @@ add_task(async function test_show_shortcuts_second_tab() { const stub = sandbox.stub(GenAI, "addAskChatItems"); const shortcuts = document.querySelector("#ai-action-button"); - EventUtils.sendMouseEvent({ type: "click" }, shortcuts); + shortcuts.click(); Assert.equal(stub.callCount, 1, "Shortcuts added on select"); Assert.equal(stub.firstCall.args[0], browser, "Got correct browser"); @@ -271,7 +272,7 @@ add_task(async function test_show_warning_label() { ); // Click button - EventUtils.sendMouseEvent({ type: "click" }, aiActionButton); + aiActionButton.click(); const chatShortcutsOptionsPanel = document.getElementById( "chat-shortcuts-options-panel" diff --git a/browser/locales/en-US/browser/genai.ftl b/browser/locales/en-US/browser/genai.ftl @@ -70,6 +70,9 @@ genai-menu-remove-provider = .label = Remove { $provider } genai-menu-remove-sidebar = .label = Remove from Sidebar +# $provider (string) - name of the AI chat provider +genai-shortcut-button = + .aria-label = Ask { $provider } genai-menu-new-badge = New genai-menu-summarize-page = Summarize Page