• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLOfficialdevelopment

ui5-best-practices-accessibility

プラグイン
ui5
ソース
GitHub で見る ↗
説明

このスキルは、UI5アプリケーションファイル(ビュー、フラグメント、コントローラー)における次のような場合に使用します: ユーザーがアクセシビリティ(障害者や高齢者など様々なユーザーが利用できるかどうか)、ARIA(ウェブ標準の補助技術対応)、WCAG準拠性(国際的なウェブアクセシビリティガイドライン)、ランドマーク(ページ構造の識別子)、ラベル表記、見出しレベル、フォーカス処理、キーボード操作、キーボードショートカット、スクリーンリーダー対応(音声読み上げソフト)、非表示メッセージ、読み順、タッチ・ターゲットサイズなどの監査、修正、確認、レビュー、改善を求める場合。 また、ユーザーが新しいUI5のビュー、フラグメント、またはコントローラーを作成する際にアクセシビリティに対応させたい場合、または特定のコントロール(ダイアログ、テーブル、パネルなど)がアクセシビリティ要件を満たしているかどうかを質問する場合にも使用します。 **関連キーワード:** アクセシビリティ、ARIA、WCAG、スクリーンリーダー、NVDA、JAWS、VoiceOver、ランドマーク、accessibleRole(役割属性)、ariaLabelledBy、ariaDescribedBy、labelFor、ツールチップ、代替テキスト、装飾的要素、見出しレベル、initialFocus、F6キー、ファストナビゲーション、tabindex、キーボードショートカット、InvisibleMessage(非表示アナウンス)、reading order(読み順)、reactiveAreaMode、ターゲットサイズ

原文を表示

This skill should be used when the user asks to audit, fix, check, review, or improve accessibility, a11y, ARIA, WCAG compliance, landmarks, labeling, heading levels, focus handling, keyboard navigation, keyboard shortcuts, screen reader support, invisible messaging, reading order, or touch / target size in UI5 application files (views, fragments, controllers). Also use when the user creates a new UI5 view, fragment, or controller and wants it to be accessible, or asks whether a specific control (Dialog, Table, Panel, etc.) meets accessibility requirements. Keywords: accessibility, a11y, ARIA, WCAG, screen reader, NVDA, JAWS, VoiceOver, landmark, landmarkInfo, accessibleRole, ariaLabelledBy, ariaDescribedBy, labelFor, tooltip, alt text, decorative, heading level, initialFocus, F6, fast nav, fastnavgroup, tabindex, CommandExecution, keyboard shortcut, InvisibleMessage, announce, reading order, reactiveAreaMode, target size.

ユースケース
  • UI5アプリのアクセシビリティを監査・改善したい
  • ARIA属性やWCAG準拠性をレビューする
  • スクリーンリーダー対応を確認したい
  • 新規UI5ビューをアクセシビリティ対応で作成
  • ダイアログやテーブルの適合性を質問する
本文(日本語訳)

アクセシビリティレビュー

UI5におけるアクセシビリティ(障害のある人を含むすべてのユーザーが利用できるようにする設計)は、フレームワークとアプリケーションの2つのレベルで実装されています。このレビューは、アプリケーション開発者がアプリケーションのアクセシビリティを向上させるために明示的に提供する必要があるものをサポートします。

ステップ1 — ファイルを検索

$ARGUMENTSに特定のファイルが列挙されている場合は、それらのファイルのみをレビューします。

それ以外の場合は、アプリケーションのソースファイルをすべて自動で検出します:

find . \( -name "*.view.xml" -o -name "*.fragment.xml" -o -name "*.controller.js" \) \
  -not -path "*/node_modules/*" \
  -not -path "*/dist/*" \
  -not -path "*/test/*" \
  -not -path "*/resources/*" \
  | sort

15個を超えるファイルが見つかった場合は、AskUserQuestionを使用してユーザーに選択させます:

  • すべてレビュー(少し時間がかかる可能性あり)
  • 特定のフォルダまたは領域に焦点を当てる

対象範囲内の各ファイルを読み込みます。

ステップ2 — レビュー実施

以下の8つのトピックのコードをチェックします。ギャップ(問題)が見つかったら、修正を記入する前に対応するトピックファイルを必ず読む — そのファイルに正しいAPI パターンと誤った/正しい例が含まれています。

# トピック 検出内容 トピックファイル
1 ランドマーク(ナビゲーション領域) DynamicPage、Page、Panel、ObjectPage、FlexibleColumnLayoutがlandmarkInfoまたはaccessibleRoleを欠く;ランドマークロール(役割)が対応するラベルなしで設定されている(例:rootLabelなしのrootRole) references/landmark.md
2 ラベル付け <Label labelFor>がない入力フィールド(SimpleForm内を除く);ariaLabelledByがないテーブル;ツールチップがないアイコンのみのButton;altがなく装飾として標示されていないスタンドアロンIcon;decorative=falseでaltがないImage;showHeader:falseでariaLabelledByがないDialog references/labeling.md
3 見出しレベル 明示的なlevelがない<Title>;ビュー内での見出しレベルのスキップ(例:H1 → H3) references/heading.md
4 フォーカスとキーボード操作 特定の開始要素が必要な場合にinitialFocusがないDialogまたはPopover;異なる論理領域として機能する大きな複合領域でsap-ui-fastnavgroupのCustomData(カスタムデータ)エントリが必要;HTMLでtabindex値が0を超える references/keyboard.md
5 キーボードショートカット キーボードショートカットをサポートすべき単純なpress=".onX"を使用したアクション(保存、削除など)ボタンがCommandExecutionを持たない references/shortcut.md
6 非表示メッセージング 動的な状態変化(保存確認、エラー、フィルター結果)がハンドラー内でInvisibleMessage.announce()呼び出しなしの表示のみ references/invisible-message.md
7 読み順序 CSS/レイアウトで視覚的に並べ替えられたコントロールがXML内でシーケンスから外れている;ariaDescribedByがDOM内で後ろに現れるIDを指している references/reading-order.md
8 ターゲットサイズ インタラクティブコンテナ内でreactiveAreaModeがないLink、ObjectIdentifier、ObjectStatus、ObjectNumber、ObjectMarker、ObjectAttribute;またはその他の詰まったレイアウト内で間隔がない references/target-size.md

ステップ3 — レポート

見つかった各ギャップについて:

課題:1行で、コントロール名と不足しているプロパティ/関連付けを記載 影響度:critical(支援技術ユーザーを完全にブロック)| serious(大きな障壁)| moderate(部分的な障壁)| minor(ベストプラクティス、直接的な影響は低い) 理由:ユーザーへの影響について1文で説明 修正:最小限の修正XML またはJSスニペット(変更部分のみ)

トピック別にグループ化し、各グループ内で重大度が高い順(critical/serious)に並べます。最後に影響度別の件数サマリーで終了します。 ギャップが見つからない場合はその旨を記載します。

原文(English)を表示

Accessibility Review

Accessibility in UI5 is incorporated in two levels: framework and application. This review supports what application developers must still provide explicitly to improve the accessibility of their application.

Step 1 — Find the files

If $ARGUMENTS lists specific files, review only those.

Otherwise, discover all app source files automatically:

find . \( -name "*.view.xml" -o -name "*.fragment.xml" -o -name "*.controller.js" \) \
  -not -path "*/node_modules/*" \
  -not -path "*/dist/*" \
  -not -path "*/test/*" \
  -not -path "*/resources/*" \
  | sort

If more than 15 files are found, use AskUserQuestion to let the user choose:

  • Review everything (may take a moment)
  • Focus on a specific folder or area

Read each file in scope.

Step 2 — Review

Check the code against the eight topics below. For each topic where you find a gap, read the corresponding topic file before writing the fix — it contains the correct API pattern and wrong/correct examples.

# Topic What to detect Topic file
1 Landmarks DynamicPage, Page, Panel, ObjectPage, FlexibleColumnLayout missing landmarkInfo or accessibleRole; landmark role set without its corresponding label (e.g. rootRole without rootLabel) references/landmark.md
2 Labeling Inputs without <Label labelFor> (except inside SimpleForm); Tables without ariaLabelledBy; icon-only Button without tooltip; standalone Icon without alt and not marked decorative; Image with decorative=false and no alt; Dialog with showHeader:false and no ariaLabelledBy references/labeling.md
3 Heading levels <Title> without explicit level; heading level jumps (e.g. H1 → H3) within a view references/heading.md
4 Focus & keyboard Dialog or Popover without initialFocus when a specific starting element is required; larger composite areas that act as distinct logical regions and need a sap-ui-fastnavgroup CustomData entry; tabindex values greater than 0 in rendered HTML references/keyboard.md
5 Keyboard shortcuts Action buttons (save, delete, etc.) using plain press=".onX" that should support keyboard shortcuts but have no CommandExecution references/shortcut.md
6 Invisible messaging Dynamic state changes (save confirmations, errors, filter results) that are visible-only with no InvisibleMessage.announce() call in the handler references/invisible-message.md
7 Reading order Controls visually reordered via CSS/layout but out of sequence in XML; ariaDescribedBy pointing to IDs that appear later in the DOM references/reading-order.md
8 Target size Link, ObjectIdentifier, ObjectStatus, ObjectNumber, ObjectMarker, ObjectAttribute inside an interactive container without reactiveAreaMode; or in other dense layout without spacing references/target-size.md

Step 3 — Report

For each gap found:

Issue: one line — names the control and the missing property/association Impact: critical (blocks AT users entirely) | serious (significant barrier) | moderate (partial barrier) | minor (best practice, low direct impact) Why: one sentence on user impact Fix: minimal corrected XML or JS snippet (only the changed part)

Group findings by topic, critical/serious first within each group. End with a summary count by impact level. If no gaps are found, say so.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。