tor-browser

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

commit 37c1b1d2b92135f2e725927c5e2519a01f809cb9
parent 10244b682ea3427081af0e14f62cd9a94d1b95d5
Author: Joe Cardoso <jow13_122@yahoo.com>
Date:   Mon,  1 Dec 2025 16:02:55 +0000

Bug 1730474 - Ensure native HTML table cells are not selectable by default. r=eeejay

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

Diffstat:
Maccessible/html/HTMLTableAccessible.cpp | 4----
Maccessible/html/HTMLTableAccessible.h | 1-
Maccessible/tests/browser/states/browser.toml | 3+++
Aaccessible/tests/browser/states/browser_test_table_selectable.js | 23+++++++++++++++++++++++
Maccessible/tests/mochitest/table/test_sels_table.html | 18+++++++++---------
5 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/accessible/html/HTMLTableAccessible.cpp b/accessible/html/HTMLTableAccessible.cpp @@ -81,10 +81,6 @@ uint64_t HTMLTableCellAccessible::NativeState() const { return state; } -uint64_t HTMLTableCellAccessible::NativeInteractiveState() const { - return HyperTextAccessible::NativeInteractiveState() | states::SELECTABLE; -} - already_AddRefed<AccAttributes> HTMLTableCellAccessible::NativeAttributes() { RefPtr<AccAttributes> attributes = HyperTextAccessible::NativeAttributes(); diff --git a/accessible/html/HTMLTableAccessible.h b/accessible/html/HTMLTableAccessible.h @@ -32,7 +32,6 @@ class HTMLTableCellAccessible : public HyperTextAccessible { // LocalAccessible virtual a11y::role NativeRole() const override; virtual uint64_t NativeState() const override; - virtual uint64_t NativeInteractiveState() const override; virtual already_AddRefed<AccAttributes> NativeAttributes() override; protected: diff --git a/accessible/tests/browser/states/browser.toml b/accessible/tests/browser/states/browser.toml @@ -22,6 +22,9 @@ https_first_disabled = true ["browser_test_selection.js"] https_first_disabled = true +["browser_test_table_selectable.js"] +https_first_disabled = true + ["browser_test_visibility.js"] https_first_disabled = true diff --git a/accessible/tests/browser/states/browser_test_table_selectable.js b/accessible/tests/browser/states/browser_test_table_selectable.js @@ -0,0 +1,23 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +"use strict"; + +/** + * Test that native HTML table cells are not selectable by default. + */ +addAccessibleTask( + ` + <table id="native_table"> + <tr> + <td id="native_cell">Native cell</td> + </tr> + </table> + `, + async function (browser, docAcc) { + const nativeCell = findAccessibleChildByID(docAcc, "native_cell"); + testStates(nativeCell, 0, 0, STATE_SELECTABLE, 0); + }, + { topLevel: true, iframe: true, remoteIframe: true, chrome: true } +); diff --git a/accessible/tests/mochitest/table/test_sels_table.html b/accessible/tests/mochitest/table/test_sels_table.html @@ -25,10 +25,10 @@ var cellsArray = [ - [false, false, false, kColSpanned, false, false, false, false], - [false, false, false, false, false, false, false, kRowSpanned], - [false, false, kColSpanned, false, false, false, false, kRowSpanned], - [false, kRowSpanned, kSpanned, false, false, kRowSpanned, false, kRowSpanned], + [undefined, undefined, undefined, kColSpanned, undefined, undefined, undefined, undefined], + [undefined, undefined, undefined, undefined, undefined, undefined, undefined, kRowSpanned], + [undefined, undefined, kColSpanned, undefined, undefined, undefined, undefined, kRowSpanned], + [undefined, kRowSpanned, kSpanned, undefined, undefined, kRowSpanned, undefined, kRowSpanned], ]; testTableSelection("table", cellsArray); @@ -41,11 +41,11 @@ cellsArray = [ - [false, false, false, -1, -1], - [false, false, false, -1, -1], - [false, false, kColSpanned, kColSpanned, -1], - [kRowSpanned, false, false, -1, -1], - [kRowSpanned, false, kRowSpanned, false, false], + [undefined, undefined, undefined, -1, -1], + [undefined, undefined, undefined, -1, -1], + [undefined, undefined, kColSpanned, kColSpanned, -1], + [kRowSpanned, undefined, undefined, -1, -1], + [kRowSpanned, undefined, kRowSpanned, undefined, undefined], ]; testTableSelection("tableinsane", cellsArray);