Skip to content

[AT] deepin-reader AT-SPI 测试套件 - #330

Closed
re2zero wants to merge 2 commits into
linuxdeepin:masterfrom
re2zero:agent/at/1787230023
Closed

[AT] deepin-reader AT-SPI 测试套件#330
re2zero wants to merge 2 commits into
linuxdeepin:masterfrom
re2zero:agent/at/1787230023

Conversation

@re2zero

@re2zero re2zero commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

全量生成 AT-SPI 测试套件,包含 6 个模块 68 条可执行用例。

Summary by Sourcery

Establish a comprehensive AT-SPI accessibility test suite and supporting UI metadata for deepin-reader.

New Features:

  • Add a six-module AT-SPI test suite covering 68 executable accessibility cases for deepin-reader.
  • Provide runtime and annotated accessibility trees plus reusable UI, element, and interaction mappings for the tested reader workflows.

Enhancements:

  • Document existing AT-SPI coverage, naming expectations, dynamic-element handling, and five remaining accessibility naming gaps.

Documentation:

  • Add AT-SPI implementation, expected-element, UI-map, and context-bundle documentation.

Tests:

  • Expand AT test case mappings and element selectors to cover menus, keyboard navigation, document viewing, sidebar interactions, dialogs, fullscreen, zoom, and related workflows.

Chores:

  • Replace the previous raw and generated AT test artifacts with the consolidated runtime tree, mapped cases, and categorized suite definitions.

全量生成 AT-SPI 测试套件,包含:
- 图谱三件套:ui-map.md, expected-at-spi-elements.md, at-spi-implementation-checklist.md
- AT 树:at-tree.yaml, at-tree-annotated.yaml
- 上下文包:context-bundle.md
- 映射文件:cases_mapped.yaml
- 元素索引:elements.yaml
- 6 个模块的 suite 文件(68 条可执行用例)

生成模式:标准模式(xlsx + DISPLAY + binary)
MCP 图谱推导:已完成
覆盖率 A(运行时元素):56.1%(23/41)
不可自动化用例:245 条(玲珑包管理、触屏、性能、压力等)
@deepin-ci-robot

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@sourcery-ai

sourcery-ai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Reviewer's Guide

Adds a full AT-SPI accessibility test suite for deepin-reader, including annotated element tree, expected AT-SPI elements, UI mapping docs, and executable YAML test cases, while cleaning up obsolete raw/generated dump files.

File-Level Changes

Change Details Files
Introduce AT-SPI implementation checklist and gap analysis documentation for deepin-reader UI accessibility.
  • Create markdown checklist summarizing current accessible widgets, registration method via QAccessible installFactory, and remaining naming gaps.
  • Document five specific accessibility naming gaps (sidebar thumbnail list, catalog tree, bookmark list, notes list, slide play widget) with target AccessibleName values, insertion points, and validation assertions.
  • Describe dynamic-name risks and recommended AT locator strategies for elements whose names change at runtime.
tests/at/at-spi-implementation-checklist.md
Define a canonical annotated accessibility tree describing runtime AT-SPI structure and states of deepin-reader UI.
  • Add at-tree-annotated.yaml capturing roles, names, object_names, actions, states, and hierarchy for main window, titlebar, menus, sidebars, and panels.
  • Align static panels like BrowserMenu, SideBarImageListView, EncryptionPage, HandleMenu, PagingWidget, TextEditShadowWidget, TransparentTextEdit with class_name, classification, and source metadata.
  • Provide explicit state labels, actions, and indices for interactive elements used by tests (buttons, menus, text inputs, tab lists).
tests/at/at-tree-annotated.yaml
Replace previous AT runtime tree and case mapping with a new normalized AT-SPI tree and a structured executable case suite.
  • Rewrite at-tree.yaml to reflect the updated runtime tree format including app root, detailed actions/states, and static panel definitions consistent with annotated tree.
  • Replace cases_mapped.yaml with a large set of structured test cases across modules (主菜单, 交互_键盘, 文档打开, 文档视图_右键菜单, 文档视图_操作, 缩略图_注释), all using normalized step schema (action + parameters).
  • Remove legacy cases_raw.yaml and multiple dump/helper YAMLs (runtime.yaml, scanned_gaps.yaml, scanned_ok.yaml, states/00_all.yaml, element_gaps.yaml, suite-cases.yaml) that are no longer needed with the new suite.
  • Drop older per-module *.suite.yaml files under tests/at/yaml and add new ones for modules such as 交互_键盘, 文档视图_右键菜单, 文档视图_操作, 缩略图_注释, ensuring they align with the new cases and elements mapping.
tests/at/at-tree.yaml
tests/at/cases_mapped.yaml
tests/at/cases_raw.yaml
tests/at/dump/runtime.yaml
tests/at/dump/scanned_gaps.yaml
tests/at/dump/scanned_ok.yaml
tests/at/dump/states/00_all.yaml
tests/at/element_gaps.yaml
tests/at/suite-cases.yaml
tests/at/yaml/elements.yaml
tests/at/yaml/交互_键盘/交互_键盘.suite.yaml
tests/at/yaml/缩略图_注释/缩略图_注释.suite.yaml
tests/at/yaml/文档视图_右键菜单/文档视图_右键菜单.suite.yaml
tests/at/yaml/文档视图_操作/文档视图_操作.suite.yaml
Add supporting documentation mapping UI components, expected AT-SPI elements, and element-to-function relationships for use by AT tests.
  • Create context-bundle.md that defines element-to-function mapping, per-screen element coverage, and functional operation-to-assertion mapping.
  • Add expected-at-spi-elements.md enumerating all expected accessible names, roles, visibility conditions, and interaction properties for main window, titlebar, sidebars, dialogs, and menus.
  • Add ui-map.md describing the UI component hierarchy via a Mermaid diagram, listing widgets, explicit AccessibleName usage, menus, dialogs, and keyboard shortcuts to support test authoring.
tests/at/context-bundle.md
tests/at/expected-at-spi-elements.md
tests/at/ui-map.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@deepin-ci-robot

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: re2zero

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

@re2zero re2zero closed this Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants