Community程式設計與開發github.com

flutter/flutter-improving-accessibility

配置 Flutter 應用程式以支援螢幕閱讀器等輔助技術。在用於確保應用程式對身障人士可用時使用。

flutter-improving-accessibility 是什麼?

這項技能旨在幫助開發者為 Flutter 應用程式配置無障礙支援,使其能與螢幕閱讀器等輔助技術良好協作。它專注於確保應用程式對身障人士(包括視覺、聽覺或運動障礙者)易於使用,這是提升應用包容性與使用者體驗的重要環節。該技能支援 Flutter 平台,並通過調整無障礙相關設定(如啟用 Semantics、添加語義標籤、管理焦點順序等)來實現目標。使用此技能時,開發者可以根據具體需求配置參數,例如啟用或禁用特定無障礙功能、設置說明文字或定義導航行為,從而在不影響既有功能的前提下,打造對所有使用者都友好的應用。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-improving-accessibility

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

flutter-improving-accessibility 是做什麼的?

配置 Flutter 應用程式以支援螢幕閱讀器等輔助技術。在用於確保應用程式對身障人士可用時使用。

概述

此技能用於改善 Flutter 應用程式的無障礙性,使其能夠與螢幕閱讀器(如 TalkBack 或 VoiceOver)等輔助技術協同工作。透過啟用語義(Semantics)和添加適當的標籤,可以讓視覺或運動障礙的使用者更輕鬆地操作應用。

使用方式

  1. 確保在 MaterialApp 或 CupertinoApp 中啟用無障礙支援:

    MaterialApp(
      showSemanticsDebugger: false, // 設定為 true 以調試語義樹
      builder: (context, child) {
        return MediaQuery(
          data: MediaQuery.of(context).copyWith(
            accessibleNavigation: true,
          ),
          child: child!,
        );
      },
      home: MyHomePage(),
    );
    
  2. 為互動式元件(如按鈕、圖標)添加語義標籤:

    Semantics(
      label: '搜尋',
      hint: '點擊以搜尋內容',
      child: IconButton(
        icon: Icon(Icons.search),
        onPressed: () {},
      ),
    )
    
  3. 使用 Semantics 小工具為複雜元件提供結構化資訊,例如合併或排除子元件:

    Semantics(
      container: true,
      child: Column(
        children: [
          Text('標題'),
          Text('描述'),
        ],
      ),
    )
    
  4. 管理焦點順序和排除不需要的語義節點:

    Focus(
      skipTraversal: true, // 跳過此元件的焦點導航
      child: IgnorePointer(
        child: Decoration(),
      ),
    )
    

注意事項

  • 始終測試應用程式在實際輔助技術(如 TalkBack 或 VoiceOver)下的行為,而不僅僅依賴語義調試器。
  • 避免過度使用 Semantics 容器,以免造成冗餘資訊。
  • 確保文字與標籤使用通俗易懂的語言,避免技術術語。

參考資源

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

flutter/flutter-accessibility

Configure your Flutter app to support assistive technologies like Screen Readers

flutter/flutter-accessibility-audit

Triggers an accessibility scan through the widget_inspector and automatically adds Semantics widgets or missing labels to the source code.

flutter/flutter-adding-home-screen-widgets

Adds home screen widgets to a Flutter app for Android and iOS. Use when providing glanceable app information or quick actions on the device home screen.

flutter/flutter-add-integration-test

Configures Flutter Driver for app interaction and converts MCP actions into permanent integration tests. Use when adding integration testing to a project, exploring UI components via MCP, or automating user flows with the integration_test package.

flutter/flutter-add-widget-preview

Adds interactive widget previews to the project using the previews.dart system. Use when creating new UI components or updating existing screens to ensure consistent design and interactive testing.

flutter/flutter-add-widget-test

Implement a component-level test using `WidgetTester` to verify UI rendering and user interactions (tapping, scrolling, entering text). Use when validating that a specific widget displays correct data and responds to events as expected.

flutter/flutter-animating-apps

Implements animated effects, transitions, and motion in a Flutter app. Use when adding visual feedback, shared element transitions, or physics-based animations.

flutter/flutter-animation

Add animated effects to your Flutter app

flutter/flutter-apply-architecture-best-practices

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-app-size

Measure and reduce the size of the Flutter app bundle, APK, or IPA

flutter/flutter-architecting-apps

Architects a Flutter application using the recommended layered approach (UI, Logic, Data). Use when structuring a new project or refactoring for scalability.

flutter/flutter-architecture

Use the Flutter team's recommended app architecture

flutter/flutter-building-forms

Builds Flutter forms with validation and user input handling. Use when creating login screens, data entry forms, or any multi-field user input.

flutter/flutter-building-layouts

Builds Flutter layouts using the constraint system and layout widgets. Use when creating or refining the UI structure of a Flutter application.

flutter/flutter-building-plugins

Builds Flutter plugins that provide native interop for other apps to use. Use when creating reusable packages that bridge Flutter with platform-specific functionality.

flutter/flutter-build-responsive-layout

Use `LayoutBuilder`, `MediaQuery`, or `Expanded/Flexible` to create a layout that adapts to different screen sizes. Use when you need the UI to look good on both mobile and tablet/desktop form factors.

flutter/flutter-caching

Cache data in a Flutter app

flutter/flutter-caching-data

Implements caching strategies for Flutter apps to improve performance and offline support. Use when retaining app data locally to reduce network requests or speed up startup.

flutter/flutter-concurrency

Execute long-running tasks in a background thread in Flutter

flutter/flutter-databases

Work with databases in a Flutter app

相關技能