diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-02-08 16:13:34 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2022-03-29 14:52:16 +0200 |
commit | d9ae75b3234392aebb714c1046a471386a63deed (patch) | |
tree | 5ea50ef1a82447ca85032028ca0c935265f0b4ae /src/core/browser_accessibility_qt.cpp | |
parent | db59a3096b4f44aaacabdc5b455fbc0a3a6b8fb1 (diff) |
Adaptations for Chrome 98
Change-Id: I607604f85a111a69da77ca949dddf3399b9721b3
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Diffstat (limited to 'src/core/browser_accessibility_qt.cpp')
-rw-r--r-- | src/core/browser_accessibility_qt.cpp | 113 |
1 files changed, 73 insertions, 40 deletions
diff --git a/src/core/browser_accessibility_qt.cpp b/src/core/browser_accessibility_qt.cpp index 7b4a02647..edcb4286e 100644 --- a/src/core/browser_accessibility_qt.cpp +++ b/src/core/browser_accessibility_qt.cpp @@ -63,11 +63,9 @@ class BrowserAccessibilityQt : public BrowserAccessibility { public: - BrowserAccessibilityQt(); + BrowserAccessibilityQt(BrowserAccessibilityManager *manager, ui::AXNode *node); ~BrowserAccessibilityQt(); - void Init(BrowserAccessibilityManager *manager, ui::AXNode *node) override; - QtWebEngineCore::BrowserAccessibilityInterface *interface() const { return m_interface; } private: @@ -87,7 +85,6 @@ class BrowserAccessibilityInterface public: BrowserAccessibilityInterface(content::BrowserAccessibilityQt *chromiumInterface); - void init(); void destroy(); // QAccessibleInterface @@ -149,7 +146,7 @@ public: int selectedCellCount() const override; int selectedColumnCount() const override; int selectedRowCount() const override; - QList<QAccessibleInterface*> selectedCells() const override; + QList<QAccessibleInterface *> selectedCells() const override; QList<int> selectedColumns() const override; QList<int> selectedRows() const override; bool isColumnSelected(int column) const override; @@ -161,13 +158,13 @@ public: // QAccessibleTableCellInterface int columnExtent() const override; - QList<QAccessibleInterface*> columnHeaderCells() const override; + QList<QAccessibleInterface *> columnHeaderCells() const override; int columnIndex() const override; int rowExtent() const override; - QList<QAccessibleInterface*> rowHeaderCells() const override; + QList<QAccessibleInterface *> rowHeaderCells() const override; int rowIndex() const override; bool isSelected() const override; - QAccessibleInterface* table() const override; + QAccessibleInterface *table() const override; void modelChange(QAccessibleTableModelChangeEvent *event) override; @@ -181,9 +178,9 @@ private: namespace content { // static -BrowserAccessibility *BrowserAccessibility::Create() +std::unique_ptr<BrowserAccessibility> BrowserAccessibility::Create(BrowserAccessibilityManager *man, ui::AXNode *node) { - return new BrowserAccessibilityQt(); + return std::unique_ptr<BrowserAccessibility>(new BrowserAccessibilityQt(man, node)); } QAccessibleInterface *toQAccessibleInterface(BrowserAccessibility *obj) @@ -196,15 +193,10 @@ const QAccessibleInterface *toQAccessibleInterface(const BrowserAccessibility *o return static_cast<const BrowserAccessibilityQt *>(obj)->interface(); } -BrowserAccessibilityQt::BrowserAccessibilityQt() - : m_interface(new QtWebEngineCore::BrowserAccessibilityInterface(this)) -{ -} - -void BrowserAccessibilityQt::Init(BrowserAccessibilityManager *manager, ui::AXNode *node) +BrowserAccessibilityQt::BrowserAccessibilityQt(BrowserAccessibilityManager *manager, ui::AXNode *node) + : content::BrowserAccessibility(manager, node), + m_interface(new QtWebEngineCore::BrowserAccessibilityInterface(this)) { - BrowserAccessibility::Init(manager, node); - m_interface->init(); } BrowserAccessibilityQt::~BrowserAccessibilityQt() @@ -221,7 +213,21 @@ using namespace content; BrowserAccessibilityInterface::BrowserAccessibilityInterface(content::BrowserAccessibilityQt *chromiumInterface) : q(chromiumInterface) -{} +{ + Q_ASSERT(parent()); + Q_ASSERT(parent()->object()); + m_object = new QObject(parent()->object()); + QString name = toQt(q->GetAuthorUniqueId()); + if (!name.isEmpty()) + m_object->setObjectName(name); + + m_id = QAccessible::registerAccessibleInterface(this); +} + +void BrowserAccessibilityInterface::destroy() +{ + QAccessible::deleteAccessibleInterface(m_id); +} bool BrowserAccessibilityInterface::isValid() const { @@ -576,7 +582,50 @@ QAccessible::Role BrowserAccessibilityInterface::role() const case ax::mojom::Role::kMarquee: return QAccessible::Section; case ax::mojom::Role::kMath: + case ax::mojom::Role::kMathMLMath: return QAccessible::Equation; + case ax::mojom::Role::kMathMLFraction: + return QAccessible::Grouping; + case ax::mojom::Role::kMathMLIdentifier: + return QAccessible::StaticText; + case ax::mojom::Role::kMathMLMultiscripts: + return QAccessible::Section; + case ax::mojom::Role::kMathMLNoneScript: + return QAccessible::Section; + case ax::mojom::Role::kMathMLNumber: + return QAccessible::StaticText; + case ax::mojom::Role::kMathMLOperator: + return QAccessible::StaticText; + case ax::mojom::Role::kMathMLOver: + return QAccessible::Section; + case ax::mojom::Role::kMathMLPrescriptDelimiter: + return QAccessible::Section; + case ax::mojom::Role::kMathMLRoot: + return QAccessible::Section; + case ax::mojom::Role::kMathMLRow: + return QAccessible::Section; + case ax::mojom::Role::kMathMLSquareRoot: + return QAccessible::Section; + case ax::mojom::Role::kMathMLStringLiteral: + return QAccessible::StaticText; + case ax::mojom::Role::kMathMLSub: + return QAccessible::Section; + case ax::mojom::Role::kMathMLSubSup: + return QAccessible::Section; + case ax::mojom::Role::kMathMLSup: + return QAccessible::Section; + case ax::mojom::Role::kMathMLTable: + return QAccessible::Table; + case ax::mojom::Role::kMathMLTableCell: + return QAccessible::Cell; + case ax::mojom::Role::kMathMLTableRow: + return QAccessible::Row; + case ax::mojom::Role::kMathMLText: + return QAccessible::StaticText; + case ax::mojom::Role::kMathMLUnder: + return QAccessible::Section; + case ax::mojom::Role::kMathMLUnderOver: + return QAccessible::Section; case ax::mojom::Role::kMenu: return QAccessible::PopupMenu; case ax::mojom::Role::kMenuBar: @@ -653,10 +702,14 @@ QAccessible::Role BrowserAccessibilityInterface::role() const return QAccessible::Indicator; case ax::mojom::Role::kStrong: return QAccessible::StaticText; + case ax::mojom::Role::kSubscript: + return QAccessible::Grouping; case ax::mojom::Role::kSuggestion: return QAccessible::Section; + case ax::mojom::Role::kSuperscript: + return QAccessible::Grouping; case ax::mojom::Role::kSvgRoot: - return QAccessible::Graphic; + return QAccessible::WebDocument; case ax::mojom::Role::kSwitch: return QAccessible::Button; case ax::mojom::Role::kTable: @@ -798,26 +851,6 @@ QAccessible::State BrowserAccessibilityInterface::state() const return state; } -void BrowserAccessibilityInterface::init() -{ - if (m_id) - return; - Q_ASSERT(parent()); - Q_ASSERT(parent()->object()); - m_object = new QObject(parent()->object()); - QString name = toQt(q->GetAuthorUniqueId()); - if (!name.isEmpty()) - m_object->setObjectName(name); - - m_id = QAccessible::registerAccessibleInterface(this); -} - -void BrowserAccessibilityInterface::destroy() -{ - // delete this - QAccessible::deleteAccessibleInterface(m_id); -} - QStringList BrowserAccessibilityInterface::actionNames() const { QStringList actions; |