tor-browser

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

commit 49d763425ff58112e112e4d22d398a9962248baf
parent a83174d40498952fbde4af9e632da07742e9ab8f
Author: Mugurell <Mugurell@users.noreply.github.com>
Date:   Mon, 15 Dec 2025 11:48:57 +0000

Bug 2003731 - Ensure talkback reads the tab counter button not the inner tab counter icon r=android-reviewers,sfamisa

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

Diffstat:
Mmobile/android/android-components/components/compose/browser-toolbar/src/main/java/mozilla/components/compose/browser/toolbar/concept/BrowserToolbarTestTags.kt | 5+++++
Mmobile/android/android-components/components/compose/browser-toolbar/src/main/java/mozilla/components/compose/browser/toolbar/ui/TabCounter.kt | 7+++++++
Mmobile/android/android-components/components/ui/tabcounter/src/main/java/mozilla/components/ui/tabcounter/TabCounter.kt | 6++++--
Mmobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt | 4++--
4 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/mobile/android/android-components/components/compose/browser-toolbar/src/main/java/mozilla/components/compose/browser/toolbar/concept/BrowserToolbarTestTags.kt b/mobile/android/android-components/components/compose/browser-toolbar/src/main/java/mozilla/components/compose/browser/toolbar/concept/BrowserToolbarTestTags.kt @@ -32,6 +32,11 @@ object BrowserToolbarTestTags { const val SEARCH_SELECTOR = "SEARCH_SELECTOR" /** + * Test tag for tabs counter button shown in the toolbar while in "display" mode. + */ + const val TABS_COUNTER = "ADDRESSBAR_TABS_COUNTER" + + /** * Test tag for the toolbar while in "edit" mode. * Useful for entering text to search or an URL to load. */ diff --git a/mobile/android/android-components/components/compose/browser-toolbar/src/main/java/mozilla/components/compose/browser/toolbar/ui/TabCounter.kt b/mobile/android/android-components/components/compose/browser-toolbar/src/main/java/mozilla/components/compose/browser/toolbar/ui/TabCounter.kt @@ -12,6 +12,9 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.semantics.testTag import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp @@ -22,6 +25,7 @@ import mozilla.components.compose.base.menu.CustomPlacementPopupVerticalContent import mozilla.components.compose.base.theme.AcornTheme import mozilla.components.compose.base.theme.acornPrivateColorScheme import mozilla.components.compose.base.theme.privateColorPalette +import mozilla.components.compose.browser.toolbar.concept.BrowserToolbarTestTags.TABS_COUNTER import mozilla.components.compose.browser.toolbar.store.BrowserToolbarInteraction import mozilla.components.compose.browser.toolbar.store.BrowserToolbarInteraction.BrowserToolbarEvent import mozilla.components.compose.browser.toolbar.store.BrowserToolbarInteraction.BrowserToolbarMenu @@ -66,6 +70,9 @@ fun TabCounter( } }, contentDescription = "", // Set internally by the TabCounter View for every count change. + modifier = Modifier.semantics(mergeDescendants = true) { + testTag = TABS_COUNTER + }, ) { TabCounter(count, showPrivacyMask) diff --git a/mobile/android/android-components/components/ui/tabcounter/src/main/java/mozilla/components/ui/tabcounter/TabCounter.kt b/mobile/android/android-components/components/ui/tabcounter/src/main/java/mozilla/components/ui/tabcounter/TabCounter.kt @@ -25,6 +25,7 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics +import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag import androidx.compose.ui.text.font.FontWeight @@ -104,7 +105,8 @@ fun TabCounter( Box( modifier = Modifier - .semantics(mergeDescendants = true) { + .semantics(mergeDescendants = false) { + this.contentDescription = tabsCounterDescription testTag = NORMAL_TABS_COUNTER }, contentAlignment = Alignment.Center, @@ -113,7 +115,7 @@ fun TabCounter( painter = painterResource( id = counterBoxBackground, ), - contentDescription = tabsCounterDescription, + contentDescription = null, tint = contentColor, ) diff --git a/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt b/mobile/android/fenix/app/src/androidTest/java/org/mozilla/fenix/ui/robots/BrowserRobot.kt @@ -48,9 +48,9 @@ import mozilla.components.browser.state.selector.selectedTab import mozilla.components.browser.state.store.BrowserStore import mozilla.components.compose.browser.toolbar.concept.BrowserToolbarTestTags.ADDRESSBAR_URL import mozilla.components.compose.browser.toolbar.concept.BrowserToolbarTestTags.ADDRESSBAR_URL_BOX +import mozilla.components.compose.browser.toolbar.concept.BrowserToolbarTestTags.TABS_COUNTER import mozilla.components.concept.engine.mediasession.MediaSession import mozilla.components.concept.engine.utils.EngineReleaseChannel -import mozilla.components.ui.tabcounter.TabCounterTestTags.NORMAL_TABS_COUNTER import org.hamcrest.CoreMatchers.allOf import org.junit.Assert.assertTrue import org.junit.Assert.fail @@ -1492,7 +1492,7 @@ class BrowserRobot { fun openTabDrawerWithComposableToolbar(composeTestRule: HomeActivityComposeTestRule, interact: TabDrawerRobot.() -> Unit): TabDrawerRobot.Transition { Log.i(TAG, "openTabDrawerWithComposableToolbar: Trying to click the tab counter button") - composeTestRule.onNodeWithTag(NORMAL_TABS_COUNTER).performClick() + composeTestRule.onNodeWithTag(TABS_COUNTER).performClick() Log.i(TAG, "openTabDrawerWithComposableToolbar: Clicked the tab counter button") Log.i(TAG, "openTabDrawerWithComposableToolbar: Trying to verify the tabs tray exists") composeTestRule.onNodeWithTag(TabsTrayTestTag.TABS_TRAY).assertExists()