tor-browser

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

commit 08c5ca81d861f59048cdb824ea35c8e8ae986369
parent 944bc53c35bf1dc1cf89d2d54c3fc538803b3dd9
Author: Giulia Cardieri <gcardieri@mozilla.com>
Date:   Tue,  9 Dec 2025 15:01:20 +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 | 14+++++++++++++-
Mbrowser/components/genai/tests/browser/browser_chat_shortcuts.js | 7++++---
Mbrowser/locales/en-US/browser/genai.ftl | 3+++
Mtoolkit/components/contentanalysis/tests/browser/browser_clipboard_paste_chat_shortcuts.js | 2+-
4 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/browser/components/genai/GenAI.sys.mjs b/browser/components/genai/GenAI.sys.mjs @@ -395,7 +395,15 @@ export const GenAI = { } aiActionButton.initialized = true; + const setAIButtonAriaLabel = (chatProviderName = "localhost") => { + document.l10n.setAttributes(aiActionButton, "genai-shortcut-button", { + provider: chatProviderName, + }); + }; + const document = aiActionButton.ownerDocument; + const initialChatProvider = this.chatProviders.get(lazy.chatProvider); + setAIButtonAriaLabel(initialChatProvider?.name); const buttonActiveState = "icon"; const buttonDefaultState = "icon ghost"; const chatShortcutsOptionsPanel = document.getElementById( @@ -460,8 +468,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 (initialChatProvider !== chatProvider?.name) { + setAIButtonAriaLabel(chatProvider?.name); + } // 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 diff --git a/toolkit/components/contentanalysis/tests/browser/browser_clipboard_paste_chat_shortcuts.js b/toolkit/components/contentanalysis/tests/browser/browser_clipboard_paste_chat_shortcuts.js @@ -109,7 +109,7 @@ add_task(async function testClipboardPasteIntoChatShortcut() { const shortcuts = document.querySelector("#ai-action-button"); const popup = document.getElementById("chat-shortcuts-options-panel"); - EventUtils.sendMouseEvent({ type: "mouseover" }, shortcuts); + shortcuts.click(); await BrowserTestUtils.waitForEvent(popup, "popupshown"); const shortcutTextArea = document.querySelector(