Skip to content

feat: add AT-SPI accessibility support for all interactive widgets - #607

Open
MyLeeJiEun wants to merge 1 commit into
linuxdeepin:masterfrom
MyLeeJiEun:feat/atspi-support
Open

feat: add AT-SPI accessibility support for all interactive widgets#607
MyLeeJiEun wants to merge 1 commit into
linuxdeepin:masterfrom
MyLeeJiEun:feat/atspi-support

Conversation

@MyLeeJiEun

Copy link
Copy Markdown
Contributor

Summary

Add AT-SPI accessibility support to all interactive widgets in dde-network-core.

Changes

C++ (25 widgets named, 13 files modified)

Type Method Files
DViewItemAction (QAction subclass) setObjectName() only netitem.cpp, controllitemsmodel.cpp, wirelessdevicemodel.cpp
QWidget subclasses setObjectName() + setAccessibleName() netitem.cpp, connectioneditpage.cpp, connectionvpneditpage.cpp, ethernetsection.cpp, ipvxsection.cpp, multiipvxsection.cpp, wirelesssection.cpp, filechoosewidget.cpp, quickpanelwidget.cpp, dsstestwidget.cpp, netdelegate.cpp

QML (178 elements named, 26 files modified)

Type Properties Added
Standard QML types (Switch, Button, ComboBox, SpinBox, etc.) Accessible.name
Custom QML components (NetButton, PageXxx, SectionXxx) Accessible.name + Accessible.role

Coverage Improvement

Component Before After
C++ widgets 28.2% (11/39) 92.3% (36/39)
QML elements 0.0% (0/178) 100.0% (178/178)

The 3 remaining C++ gaps are false positives:

  • m_connectionAction: declared but never instantiated (nullptr)
  • m_parentWidget: parent reference (not owned by this class)
  • m_view: const pointer (not owned)

Test Artifacts

Scan results and name mappings are included in tests/at/spi/:

  • pre_scan_gaps.yaml / pre_scan_ok.yaml: C++ scan results
  • qml_gaps.yaml / qml_ok.yaml: QML scan results
  • expected_names.yaml: Expected accessible names for automated testing
  • name_map.txt: Variable-to-name mappings

Testing

Quality gate passed:

  • C++ coverage: 92.3% (threshold met)
  • QML coverage: 100.0% (threshold: 80%)
  • No new gaps introduced
  • All changes are additive (0 deletions)

Closes #DDE-164

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: MyLeeJiEun

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅

@deepin-ci-robot

Copy link
Copy Markdown

Hi @MyLeeJiEun. Thanks for your PR.

I'm waiting for a linuxdeepin member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@MyLeeJiEun
MyLeeJiEun marked this pull request as ready for review August 26, 2026 03:27

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @MyLeeJiEun, your pull request is larger than the review limit of 150,000 diff characters

@MyLeeJiEun

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA.

deepin-bot Bot added a commit to linuxdeepin/cla that referenced this pull request Aug 26, 2026
@MyLeeJiEun
MyLeeJiEun force-pushed the feat/atspi-support branch 3 times, most recently from b383a28 to 3ddfac4 Compare August 26, 2026 08:21
Add accessible names and roles to interactive widgets across the codebase
to enable screen reader compatibility and accessibility testing.

C++ changes (25 widgets named in 13 files):
- DViewItemAction items: setObjectName() only (QAction has no setAccessibleName)
- QWidget items: both setObjectName() and setAccessibleName()

QML changes (178 elements named in 26 files):
- Standard types: Accessible.name only
- Custom types: Accessible.name + Accessible.role

Coverage improvement:
- C++: 28.2% -> 92.3%
- QML: 0.0% -> 100.0%

Issue: DDE-164
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants