Communityコーディング&開発github.com

flutter/flutter-accessibility

Flutterアプリをスクリーンリーダーなどの支援技術に対応するよう設定します。

flutter-accessibility とは?

このスキルは、Flutterアプリケーションをスクリーンリーダー(VoiceOver、TalkBackなど)やその他の支援技術で適切に動作するよう設定する方法を開発者に提供します。主な機能として、Semanticsウィジェットを使用したアクセシブルなラベル、ヒント、値の追加、フォーカス管理、およびキーボードナビゲーションのサポートが含まれます。これにより、視覚障害や運動障害を持つユーザーなど、多様なユーザーがアプリを利用できるようになり、アプリのリーチとユーザビリティが向上します。スキルは公式のFlutterドキュメントとベストプラクティスに基づいており、既存のFlutterプロジェクトにシームレスに統合できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/flutter/skills/tree/main/skills/flutter-accessibility

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

flutter-accessibility は何をしますか?

Flutterアプリをスクリーンリーダーなどの支援技術に対応するよう設定します。

概要

このスキルは、Flutterアプリケーションのアクセシビリティ(a11y)サポートを構成するためのガイドとツールを提供します。アプリをより包括的にし、支援技術に依存するユーザーがアプリを効果的に操作・理解できるようにします。

主な機能

  • Semanticsウィジェット: ウィジェットにアクセシビリティラベル、ヒント、値、および状態を追加します。
  • スクリーンリーダーのサポート: iOSのVoiceOverやAndroidのTalkBackとの互換性を確保します。
  • フォーカス管理: キーボードやスイッチ制御ユーザーのためのフォーカス順序とトラバーサルを制御します。
  • ランドマークとヘッダー: ナビゲーションを支援するために、領域をランドマークまたはヘッダーとしてマークします。
  • カスタムアクション: スワイプやタップなどのアクセシブルな操作を定義します。
  • マージセマンティクス: 複数の子ウィジェットからのセマンティクス情報を1つのノードに結合します。

使用方法

以下の例は、基本的なアクセシビリティラベル付きアイコンボタンの実装を示しています。

Semantics(
  label: '設定を開く',
  hint: '設定画面に移動します',
  child: IconButton(
    icon: Icon(Icons.settings),
    onPressed: () {
      // 設定を開く
    },
  ),
)

より複雑な例として、マージセマンティクスを使用したカスタムリストアイテムを示します。

Semantics(
  container: true,
  child: MergeSemantics(
    child: ListTile(
      leading: Icon(Icons.notifications),
      title: Text('通知'),
      subtitle: Text('新しいメッセージが3件あります'),
      onTap: () {
        // 通知を開く
      },
    ),
  ),
)

ベストプラクティス

  1. ラベルの簡潔さ: ラベルは簡潔で説明的に保ちます。冗長な情報は避けてください。
  2. ヒントは慎重に: ヒントは必要な場合にのみ使用し、アクションの結果を説明します。
  3. テスト: iOSではVoiceOver、AndroidではTalkBackを使用して実際のデバイスでテストします。
  4. キーボードナビゲーション: すべてのインタラクティブ要素にキーボードからアクセスできることを確認します。
  5. 動的コンテンツ: 動的に変更されるコンテンツに対して announceText() や announce() の使用を検討します。

プラットフォームサポート

プラットフォームスクリーンリーダー備考
iOSVoiceOverUIKitおよびSwiftUIと同様の標準的なセマンティクスサポート
AndroidTalkBackMaterial Designコンポーネントと互換性あり
WebChromeVox, NVDA, JAWSセマンティックHTML要素への適切なマッピングが必要
macOSVoiceOverAppKit統合と同様のサポート

参考リンク

Individual skills in this repo

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

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

flutter/flutter-embedding-native-views

Embeds native Android, iOS, or macOS views into a Flutter app. Use when integrating complex native components like maps or web views.

関連スキル