jpskill.com
🎨 デザイン コミュニティ

react-aria

React Ariaを活用し、アクセシブルなフォームやデザインシステムを構築、または既存のUIのアクセシビリティ問題を改善することで、より多くの人が利用しやすいReactコンポーネントを開発するSkill。

📜 元の英語説明(参考)

Build accessible UI components with React Aria. Use when creating accessible form controls, implementing ARIA patterns, building design systems, or fixing accessibility issues.

🇯🇵 日本人クリエイター向け解説

一言でいうと

React Ariaを活用し、アクセシブルなフォームやデザインシステムを構築、または既存のUIのアクセシビリティ問題を改善することで、より多くの人が利用しやすいReactコンポーネントを開発するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o react-aria.zip https://jpskill.com/download/15319.zip && unzip -o react-aria.zip && rm react-aria.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15319.zip -OutFile "$d\react-aria.zip"; Expand-Archive "$d\react-aria.zip" -DestinationPath $d -Force; ri "$d\react-aria.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して react-aria.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → react-aria フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

React Aria

概要

React Aria (Adobe) は、React のためのアクセシブルな UI プリミティブを提供します。キーボード操作、スクリーンリーダーによるアナウンス、フォーカスの管理、および ARIA 属性を処理します。スタイリングはあなたが提供します。

手順

ステップ 1: アクセシブルなコンポーネント

import { Button, Label, ListBox, ListBoxItem, Popover, Select, SelectValue } from 'react-aria-components'

export function SelectField({ label, items, onSelectionChange }) {
  return (
    <Select onSelectionChange={onSelectionChange}>
      <Label>{label}</Label>
      <Button><SelectValue /><span aria-hidden="true">▼</span></Button>
      <Popover>
        <ListBox>
          {items.map(item => (
            <ListBoxItem key={item.id} id={item.id}>{item.name}</ListBoxItem>
          ))}
        </ListBox>
      </Popover>
    </Select>
  )
}
// 矢印キーで移動、Enter で選択、Escape で閉じます
// スクリーンリーダー: 値、ロール、オプション数をアナウンスします

ステップ 2: フォーカスの管理

import { FocusScope } from 'react-aria'

function ModalDialog({ children, onClose }) {
  return (
    <FocusScope contain restoreFocus autoFocus>
      <div role="dialog" aria-modal="true">
        {children}
        <button onClick={onClose}>Close</button>
      </div>
    </FocusScope>
  )
}

ステップ 3: カスタムフック

import { useButton } from 'react-aria'
import { useRef } from 'react'

function CustomButton(props) {
  const ref = useRef(null)
  const { buttonProps } = useButton(props, ref)
  return <button {...buttonProps} ref={ref}>{props.children}</button>
}

ガイドライン

  • React Aria = 挙動 + アクセシビリティ。スタイリング(Tailwind、CSS-in-JS)はあなたが制御します。
  • react-aria-components: レンダリングプロパティを持つ、構築済みのアクセシブルなコンポーネントです。
  • 個別のフック(useButtonuseTextField)は、完全にカスタムなデザインのためにあります。
  • FocusScope はモーダル内のフォーカスをトラップします — WCAG 2.1 に必須です。
  • VoiceOver (Mac)、NVDA (Windows)、キーボードのみでテストしてください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

React Aria

Overview

React Aria (Adobe) provides accessible UI primitives for React. Handles keyboard navigation, screen reader announcements, focus management, and ARIA attributes — you provide styling.

Instructions

Step 1: Accessible Components

import { Button, Label, ListBox, ListBoxItem, Popover, Select, SelectValue } from 'react-aria-components'

export function SelectField({ label, items, onSelectionChange }) {
  return (
    <Select onSelectionChange={onSelectionChange}>
      <Label>{label}</Label>
      <Button><SelectValue /><span aria-hidden="true">▼</span></Button>
      <Popover>
        <ListBox>
          {items.map(item => (
            <ListBoxItem key={item.id} id={item.id}>{item.name}</ListBoxItem>
          ))}
        </ListBox>
      </Popover>
    </Select>
  )
}
// Arrow keys navigate, Enter selects, Escape closes
// Screen reader: announces value, role, option count

Step 2: Focus Management

import { FocusScope } from 'react-aria'

function ModalDialog({ children, onClose }) {
  return (
    <FocusScope contain restoreFocus autoFocus>
      <div role="dialog" aria-modal="true">
        {children}
        <button onClick={onClose}>Close</button>
      </div>
    </FocusScope>
  )
}

Step 3: Custom Hooks

import { useButton } from 'react-aria'
import { useRef } from 'react'

function CustomButton(props) {
  const ref = useRef(null)
  const { buttonProps } = useButton(props, ref)
  return <button {...buttonProps} ref={ref}>{props.children}</button>
}

Guidelines

  • React Aria = behavior + accessibility. You control styling (Tailwind, CSS-in-JS).
  • react-aria-components: pre-built accessible components with render props.
  • Individual hooks (useButton, useTextField) for fully custom designs.
  • FocusScope traps focus in modals — required for WCAG 2.1.
  • Test with VoiceOver (Mac), NVDA (Windows), keyboard-only.