跳到內容
+

資料格線 - 無障礙功能

了解資料格線如何實作無障礙功能和指南,包括遵循國際標準的鍵盤導航。

指南

常見的無障礙功能一致性指南包括

  • 全球公認的標準:WCAG
  • 美國
  • 歐洲:EAA (歐洲無障礙法案)

WCAG 2.1 具有三個等級的一致性:A、AA 和 AAA。AA 級超越了無障礙功能的基本標準,並且是大多數組織的常見目標,因此這是我們旨在支援的目標。

WAI-ARIA 製作實務提供了關於如何最佳化資料格線無障礙功能的寶貴資訊。

密度

您可以變更列和欄標題的密度。

從工具列選取密度

若要從工具列啟用密度選取,您可以執行下列其中一項操作

  1. 透過將 slots.toolbar 屬性傳遞至資料格線來啟用預設工具列元件。
  2. 建立僅包含 GridToolbarDensitySelector 元件的特定工具列,並使用資料格線 slots 屬性中的 toolbar 屬性套用它。

然後,使用者可以透過使用工具列中的密度選取選單來變更資料格線的密度,如下列示範所示

按下 Enter 開始編輯

若要停用密度選取選單,請將 disableDensitySelector 屬性傳遞至資料格線。

以程式設計方式設定密度

資料格線公開了 density 屬性,該屬性支援下列值

  • standard (預設)
  • compact
  • comfortable

您可以透過下列其中一種方式以程式設計方式設定密度

  1. 非受控 - 使用 initialState.density 屬性初始化密度。

    <DataGrid
      initialState={{
        density: 'compact',
      }}
    />
    
  2. 受控 - 傳遞 densityonDensityChange 屬性。對於更進階的使用案例,您也可以訂閱 densityChange 格線事件。

    const [density, setDensity] = React.useState<GridDensity>('compact');
    
    return (
      <DataGrid
        density={density}
        onDensityChange={(newDensity) => setDensity(newDensity)}
      />
    );
    

如果提供 rowHeightcolumnHeaderHeight 屬性,則 density 屬性會套用由這些屬性決定的值。使用者可以使用選用的工具列密度選取器來覆寫此設定。

下列示範顯示了一個受控密度設定為 compact 的資料格線,並在使用工具列中的密度選取器變更密度時,將目前的密度輸出到主控台

按下 Enter 開始編輯

鍵盤導航

資料格線會監聽來自使用者的鍵盤互動,並回應單元格內的按鍵發出事件。

Tab 鍵順序

根據WAI-ARIA 製作實務,複合小工具所包含的可聚焦元素中,只有一個應包含在頁面 tab 鍵順序中。若要將元素包含在 tab 鍵順序中,它需要具有 tabIndex 值零或更大。

當使用者聚焦於資料格線單元格時,第一個具有 tabIndex={0} 的內部元素會接收焦點。如果沒有具有 tabIndex={0} 的元素,則焦點會設定在單元格本身。

以下兩個資料格線說明了頁面 tab 鍵順序管理不當如何影響使用者體驗,使其難以瀏覽資料集

沒有焦點管理

正確的焦點管理

如果您使用 renderCell 方法自訂單元格呈現,您就有責任從頁面 tab 鍵順序中移除可聚焦的元素。使用傳遞至 renderCell 參數的 tabIndex 屬性來判斷呈現的單元格是否具有焦點,以及內部元素是否應因此從 tab 鍵順序中移除

renderCell: (params) => (
  <div>
    <Link tabIndex={params.tabIndex} href="/#">
      more info
    </Link>
  </div>
);
按鍵 描述
向左箭頭鍵 在單元格元素之間導航
向下箭頭鍵 在單元格元素之間導航
向右箭頭鍵 在單元格元素之間導航
向上箭頭鍵 在單元格元素之間導航
Home 鍵 導航至目前列的第一個單元格
End 鍵 導航至目前列的最後一個單元格
Ctrl+Home 導航至第一列的第一個單元格
Ctrl+End 導航至最後一列的最後一個單元格
空白鍵 導航至下一個可捲動頁面
Page Up 鍵 導航至上一個可捲動頁面
Page Down 鍵 導航至下一個可捲動頁面
空白鍵 當分組單元格聚焦時,切換列子項展開

選取

按鍵 描述
Shift+空白鍵 選取目前列
Shift+向上/向下箭頭鍵 選取目前列以及上方或下方的列
Shift+ 按一下單元格 選取第一個和最後一個按一下的列之間的列範圍
Ctrl+A 選取所有列
Ctrl+C 複製目前選取的列
Ctrl+ 按一下單元格 啟用多重選取
Ctrl+ 按一下選取的列 取消選取列

排序

按鍵 描述
Ctrl+ 按一下標題 啟用多重排序
Shift+ 按一下標題 啟用多重排序
Shift+Enter 當欄標題聚焦時,啟用多重排序
Enter 鍵 當欄標題聚焦時,排序欄
Ctrl+Enter 當欄標題聚焦時,開啟欄選單

分組和樞紐分析

按鍵 描述
Ctrl+Enter 切換列的詳細面板

API