
Storybook 10.4
@storybook/tanstack-reactによりTanStack Reactのタイプセーフなルーティングとサーバー関数がゼロ設定でサポートされます。実験的なreact-component-metaアナライザーはVolarとTypeScript Language Serverを基盤とし、react-docgenおよびreact-docgen-typescriptを置き換える高速かつ高精度なコンポーネント検出を実現します。今週はデザインシステムのツール面で複数の進展がありました。Storybook 10.4は、一度に最大10コンポーネントのモック構成・ストーリー作成・インタラクションテストを自動化するAI主導のセットアップ機能をリリースし、コードdiffに対してnew・modified・relatedのストーリーを表示するサイドバー変更検出フィ… 開発ですぐ活用できるよう整理しました。

@storybook/tanstack-reactによりTanStack Reactのタイプセーフなルーティングとサーバー関数がゼロ設定でサポートされます。実験的なreact-component-metaアナライザーはVolarとTypeScript Language Serverを基盤とし、react-docgenおよびreact-docgen-typescriptを置き換える高速かつ高精度なコンポーネント検出を実現します。
useEffectのローカルフェッチからReact Query、ルートレベルローダーを経てReact Server Components(RSC)への進化を辿り、RSCが両方の利点を達成すると主張します。コンポーネントをローダーのデータ形状に結合せずにサーバーサイドデータフェッチを実現できるというものです。各非同期サーバーコンポーネントは最小限の識別子を通じて必要なデータのみを取得するため、prop drillingや重複したローダーロジックなしにページ間でコンポーネントを再利用できます。Reactのcacheはコンポーネントツリーでのリクエスト単位の重複フェッチを除去します。ページはローディングシーケンスを設計するために意図的なSuspenseバウンダリを配置する同期的コンポジターになります。単純さのための単一バウンダリ、独立したストリーミングのための粒状バウンダリを選択し、レイアウトシフト防止のためにコンポーネントとスケルトンを同じファイルから一緒にエクスポートします。この記事ではuseOptimisticによるクライアントサイドのServer Function変更、フィーチャーフォルダー構成、そして同じアーキテクチャがcacheComponentsを使用するNext.js 16のPartial Prerenderingにどのようにマッピングされるかも扱っています。
divとspanのデフォルトロールであるgenericロールが、名前を付けることができない要素として明示的に列挙されています。Manuel Matuzovicは8種類のスクリーンリーダーとブラウザの組み合わせでdiv・span・カスタム要素にaria-labelを適用してテストし、一貫性のない動作を確認しました。macOSのVoiceOverはラベルと「group」を読み上げる一方、ChromeのJAWSとNVDAはラベルを完全に無視してテストコンテンツのみを読みます。例外が2つあり、section要素はラベルを付けるとregionランドマークロールを持つため適切であり、popover属性を持つdivはgroupロールになるため技術的にラベルが有効です。実務上、デザインシステムのマークアップガイドラインでgeneric要素へのaria-labelの使用は予測不能なAT読み上げをもたらすため避けるべきです。
alt属性が必要な装飾的画像、テキスト画像、長いalt文字列よりも補足リストや説明が適切なチャートなどの複雑な画像が対象です。HTMLのalt属性は、画像の読み込みに失敗した場合に代替テキストとして機能しないaria-labelやaria-labelledbyよりも標準的な方法として推奨されます。CKEditorのAI Quick Actions機能は画像内容からalt textを自動生成できますが、公開前に正確さとコンテキストへの適合性について人間によるレビューが必要だと強調されています。



@storybook/tanstack-reactによりTanStack Reactのタイプセーフなルーティングとサーバー関数がゼロ設定でサポートされます。実験的なreact-component-metaアナライザーはVolarとTypeScript Language Serverを基盤とし、react-docgenおよびreact-docgen-typescriptを置き換える高速かつ高精度なコンポーネント検出を実現します。useEffectのローカルフェッチからReact Query、ルートレベルローダーを経てReact Server Components(RSC)への進化を辿り、RSCが両方の利点を達成すると主張します。コンポーネントをローダーのデータ形状に結合せずにサーバーサイドデータフェッチを実現できるというものです。各非同期サーバーコンポーネントは最小限の識別子を通じて必要なデータのみを取得するため、prop drillingや重複したローダーロジックなしにページ間でコンポーネントを再利用できます。Reactのcacheはコンポーネントツリーでのリクエスト単位の重複フェッチを除去します。ページはローディングシーケンスを設計するために意図的なSuspenseバウンダリを配置する同期的コンポジターになります。単純さのための単一バウンダリ、独立したストリーミングのための粒状バウンダリを選択し、レイアウトシフト防止のためにコンポーネントとスケルトンを同じファイルから一緒にエクスポートします。この記事ではuseOptimisticによるクライアントサイドのServer Function変更、フィーチャーフォルダー構成、そして同じアーキテクチャがcacheComponentsを使用するNext.js 16のPartial Prerenderingにどのようにマッピングされるかも扱っています。divとspanのデフォルトロールであるgenericロールが、名前を付けることができない要素として明示的に列挙されています。Manuel Matuzovicは8種類のスクリーンリーダーとブラウザの組み合わせでdiv・span・カスタム要素にaria-labelを適用してテストし、一貫性のない動作を確認しました。macOSのVoiceOverはラベルと「group」を読み上げる一方、ChromeのJAWSとNVDAはラベルを完全に無視してテストコンテンツのみを読みます。例外が2つあり、section要素はラベルを付けるとregionランドマークロールを持つため適切であり、popover属性を持つdivはgroupロールになるため技術的にラベルが有効です。実務上、デザインシステムのマークアップガイドラインでgeneric要素へのaria-labelの使用は予測不能なAT読み上げをもたらすため避けるべきです。alt属性が必要な装飾的画像、テキスト画像、長いalt文字列よりも補足リストや説明が適切なチャートなどの複雑な画像が対象です。HTMLのalt属性は、画像の読み込みに失敗した場合に代替テキストとして機能しないaria-labelやaria-labelledbyよりも標準的な方法として推奨されます。CKEditorのAI Quick Actions機能は画像内容からalt textを自動生成できますが、公開前に正確さとコンテキストへの適合性について人間によるレビューが必要だと強調されています。今週はデザインシステムのツール面で複数の進展がありました。Storybook 10.4は、一度に最大10コンポーネントのモック構成・ストーリー作成・インタラクションテストを自動化するAI主導のセットアップ機能をリリースし、コードdiffに対してnew・modified・relatedのストーリーを表示するサイドバー変更検出フィルターも追加されました。Quick SharingはPRやCIなしでChromatic上に1クリック公開を可能にし、@storybook/tanstack-reactを通じてTanStack Reactが公式サポートされました。Volarベースの実験的なreact-component-metaアナライザーはreact-docgenとreact-docgen-typescriptを置き換えます。
デザインシステムにおけるアクセシビリティも大きな注目を集めました。8種類のスクリーンリーダーとブラウザの組み合わせにわたるManuel Matuzovicの研究は、divやspanなどの汎用要素にaria-labelを使用するとAT動作が一貫しないことを確認しました。VoiceOverはラベルと「group」を読み上げますが、ChromeのJAWSとNVDAは完全に無視します。マークアップガイドラインから禁止すべきです。CKEditorはWCAG 2.2のPOUR原則に沿ったalt textのベストプラクティスをまとめ、コンテンツ画像・リンク画像・装飾的画像・複雑な画像のコンテキスト別要件を区別しました。第15回Global Accessibility Awareness Day(GAAD)は、AI生成コードでも開発者のアクセシビリティ責任は免除されないことを再確認しました。
デザインプロセスの考え方も注目されました。Laura Kleinは、実際の問題解決が起こる「作る」という生産的な摩擦をAIが取り除いてしまう可能性を警告し、曖昧な思考を外部化するラフスケッチやクイックプロトタイプなどの「design disposable」を守ることを主張しました。Aurora ScharffはReactのcache()を使ったリクエスト単位の重複排除、コンポーネントと同位置に配置したSuspenseバウンダリとスケルトン、useOptimisticによるServer Function変更を活用するReact Server Componentsアーキテクチャを詳述し、Next.js 16のPartial Prerenderingとのマッピングも解説しました。