--- name: smarthr-ui-td description: "Tdは、td要素の代替としてテーブルのデータセルを表すコンポーネントです。" metadata: version: "1.0.0" source: smarthr-design-system generated-from: layer1+layer2+layer3 --- td要素の代替としてテーブルのデータセルを表すコンポーネントです。 他のコンポーネントと組み合わせることが多いため、具体的な使用方法はよくあるテーブル(https://smarthr.design/products/design-patterns/smarthr-table/)を参照してください。 ## import ```ts import { Td } from 'smarthr-ui' ``` ## Props | Props 名 | 型 | デフォルト値 | 必須 | 説明 | |---|---|---|---|---| | align | "left" \| "right" | - | - | - | | vAlign | "middle" \| "baseline" | - | - | - | | nullable | boolean | - | - | - | | fixed | "left" \| "right" | - | - | 横スクロール時、カラムを左右いずれかに固定 | | contentWidth | CellContentWidth \| { base?: CellContentWidth; min?: CellContentWidth; max?: CellContentWidth; } | - | - | - | ## 実装ルール ### a11y-prohibit-checkbox-or-radio-in-table-cell テーブルセル(Th, Td)内に直接 Checkbox, RadioButton を配置することを禁止するルールです。
SmartHR UI には、デフォルトでアクセシブルネームを設定する TdCheckbox, ThCheckbox, TdRadioButton といったより適切なコンポーネントが用意されています。 ❌ NG: ```jsx // Td, Th内にCheckbox, RadioButtonを配置しているためNG ``` ```jsx // Td, Thに適切にaria-labelledby, aria-label属性を設定していても置き換え推奨のためNG ``` 詳細は eslint-plugin-smarthr の各ルール README を参照してください。 ## 使い方チェックリスト ### アクセシビリティ > セル内にチェックボックスやラジオボタンをそのまま配置しない - [avoid] セルの内部に Checkbox や RadioButton をそのまま配置せず、TdCheckbox / ThCheckbox / TdRadioButton を利用する ### アクセシビリティ > TdCheckboxおよびTdRadioButtonでは行を特定できる要素をIDで参照する - [must] TdCheckbox および TdRadioButton を利用する場合は `aria-labelledby` 属性を必ず指定し、それだけで行を一意に判別できる要素への ID 参照を指定する - [must] オブジェクト名だけで一意に判別できないオブジェクトでは、複数の要素の ID 参照をスペース区切りで指定する