Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
f84e9c3
FLUT-1038842-[others][flutter]: Direct AI changes
Gowtham-SF4769 Jul 7, 2026
fab11f9
FLUT-1038842-[others][flutter]: getting started fixed
Gowtham-SF4769 Jul 7, 2026
f6a3182
FLUT-1038842-[others][flutter]: overview fixed
Gowtham-SF4769 Jul 7, 2026
a08df04
FLUT-1038842-[others][flutter]: databinding fixed
Gowtham-SF4769 Jul 7, 2026
2cc6a6c
FLUT-1038842-[others][flutter]: column types fixed
Gowtham-SF4769 Jul 7, 2026
3674a56
FLUT-1038842-[others][flutter]: stacked header fixed
Gowtham-SF4769 Jul 7, 2026
c098072
FLUT-1038842-[others][flutter]: sorting fixed
Gowtham-SF4769 Jul 7, 2026
4fdcb00
FLUT-1038842-[others][flutter]: Till Editing fixed
Gowtham-SF4769 Jul 7, 2026
d8cb1fd
FLUT-1038842-[others][flutter]: Till Summaries fixed
Gowtham-SF4769 Jul 7, 2026
bbbe025
FLUT-1038842-[others][flutter]: Till PulltoRefresh fixed
Gowtham-SF4769 Jul 8, 2026
19084cc
FLUT-1038842-[others][flutter]: Till Export fixed
Gowtham-SF4769 Jul 8, 2026
396daf2
FLUT-1038842-[others][flutter]: UG Partial fixed
Gowtham-SF4769 Jul 8, 2026
62a624a
FLUT-1038842-[others][flutter]: Review correction fixed
Gowtham-SF4769 Jul 8, 2026
185302d
FLUT-1038842-[others][flutter]: Resolved CL failures
Gowtham-SF4769 Jul 8, 2026
56bfeaf
FLUT-1038842-[others][flutter]: CI Issue fixed
Gowtham-SF4769 Jul 8, 2026
2b01e21
FLUT-1038842-[others][flutter]: Modified Links
Gowtham-SF4769 Jul 8, 2026
e0bec6d
FLUT-1038842-[others][flutter]: Removed the failed section
Gowtham-SF4769 Jul 8, 2026
3069d4f
Merge pull request #1472 from syncfusion-content/FLUT-1038842-UGrework
FarjanaParveen Jul 8, 2026
99ff07a
Merge pull request #1473 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 8, 2026
365104d
FLUT-1030655: enhancement signaturepad UG
Mugunthan-Ramalingam Jul 10, 2026
aecfe55
Merge pull request #1481 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 10, 2026
8e405ea
Merge pull request #1494 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 13, 2026
df1cf81
Merge pull request #1478 from syncfusion-content/FLUT-1030655-signatu…
sfHariHaraSudhan Jul 17, 2026
bac038d
Merge pull request #1502 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 20, 2026
dbf25be
Merge pull request #1515 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 20, 2026
f05e269
Merge pull request #1519 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 21, 2026
56ff44d
Merge pull request #1526 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 27, 2026
cfd0f48
Merge pull request #1527 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 27, 2026
6de21c8
Merge pull request #1534 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 28, 2026
979ed2c
Merge pull request #1544 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Jul 29, 2026
6f75f04
Merge pull request #1555 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Aug 3, 2026
d9108cb
Merge pull request #1556 from Syncfusion-Content/hotfix/hotfix-v34.1.29
SyncfusionBuild Aug 3, 2026
a232644
FLUT-1030655 Resolved merge conflicts
sfHariHaraSudhan Aug 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
221 changes: 143 additions & 78 deletions Flutter/datagrid/accessibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,34 +9,43 @@ documentation: ug

# Accessibility in Flutter DataGrid (SfDataGrid)

The [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) widget is designed with comprehensive accessibility features to ensure all users, including those using assistive technologies, can interact with data effectively. This section covers built-in accessibility support and best practices for implementing an accessible data grid experience.

## Screen reader support

The [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) can be accessed easily by screen readers in the following ways on Android and iOS platforms:
The SfDataGrid supports screen readers through the following interactions on Android and iOS platforms:

* Cell contents can be read by tapping the required cell.
* Adjacent cell content can be navigated by swiping left or right.
* Scroll the DataGrid vertically and horizontally by dragging with two fingers.

* Cell contents can be read by tapping the required cell.
* Read adjacent cell content by swiping right or left.
* Scroll the DataGrid vertically and horizontally by dragging with two fingers.

## Sufficient contrast

The [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) provides sufficient color contrast to make cell content more readable. Use the following properties to customize the appearance of the DataGrid elements:
The [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) provides sufficient color contrast to make cell content more readable and compliant with WCAG 2.1 AA standards. Customize the appearance of DataGrid elements using the following properties:

* [currentCellStyle](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/currentCellStyle.html)
* [frozenPaneElevation](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/frozenPaneElevation.html)
* [frozenPaneLineColor](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/frozenPaneLineColor.html)
* [gridLineColor](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/gridLineColor.html)
* [headerColor](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/headerColor.html)
* [headerHoverColor](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/headerHoverColor.html)
* [selectionColor](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/selectionColor.html)
* [sortIconColor](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/sortIconColor.html)
* [`currentCellStyle`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/currentCellStyle.html) — Styling for the currently selected cell
* [`frozenPaneElevation`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/frozenPaneElevation.html) — Shadow depth for frozen panes
* [`frozenPaneLineColor`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/frozenPaneLineColor.html) — Border color for frozen pane dividers
* [`gridLineColor`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/gridLineColor.html) — Color of grid lines between cells
* [`headerColor`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/headerColor.html) — Background color of column headers
* [`headerHoverColor`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/headerHoverColor.html) — Header background color on hover
* [`selectionColor`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/selectionColor.html) — Background color for selected cells
* [`sortIconColor`](https://pub.dev/documentation/syncfusion_flutter_core/latest/theme/SfDataGridThemeData/sortIconColor.html) — Color of sort indicator icons

## Large fonts

Since [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) receives widgets from the user for each cell, the font size in those widgets will automatically adjust based on OS settings in Android and iOS platforms. To ensure cell content remains clearly visible, the row heights in the DataGrid will automatically adjust based on the `MediaQueryData.textScaleFactor`.
Since [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) receives widgets from the user for each cell, the font size in those widgets automatically adjusts based on OS text scale settings on Android and iOS platforms. To ensure cell content remains clearly visible, row heights adjust automatically based on the [`MediaQueryData.textScaleFactor`](https://api.flutter.dev/flutter/widgets/MediaQueryData/textScaleFactor.html).

The following example demonstrates how to apply a custom text scale factor:

{% tabs %}
{% highlight Dart %}

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_datagrid/datagrid.dart';

@override
Expand All @@ -54,8 +63,8 @@ Widget build(BuildContext context) {
child: Text(
'ID',
overflow: TextOverflow.ellipsis,
)
)
),
),
),
GridColumn(
columnName: 'name',
Expand All @@ -65,8 +74,8 @@ Widget build(BuildContext context) {
child: Text(
'Name',
overflow: TextOverflow.ellipsis,
)
)
),
),
),
GridColumn(
columnName: 'salary',
Expand All @@ -76,8 +85,8 @@ Widget build(BuildContext context) {
child: Text(
'Salary',
overflow: TextOverflow.ellipsis,
)
)
),
),
),
GridColumn(
columnName: 'designation',
Expand All @@ -87,11 +96,11 @@ Widget build(BuildContext context) {
child: Text(
'Designation',
overflow: TextOverflow.ellipsis,
)
)
)
]
)
),
),
),
],
),
);
}

Expand All @@ -100,73 +109,129 @@ Widget build(BuildContext context) {

## Keyboard navigation

The [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) provides keyboard navigation support when the [selectionMode](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid/selectionMode.html) and [navigationMode](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid/navigationMode.html) are enabled. Refer to this [link](https://help.syncfusion.com/flutter/datagrid/selection#keyboard-behavior) for supported keys and their purpose.
The [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) supports keyboard navigation for enhanced accessibility and desktop usability. Enable keyboard navigation by configuring the [`selectionMode`](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid/selectionMode.html) and [`navigationMode`](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid/navigationMode.html) properties.

**Supported keyboard interactions:**
* **Arrow keys** — Navigate between cells (up, down, left, right)
* **Tab/Shift+Tab** — Move focus to the next/previous cell
* **Enter** — Select/activate the current cell
* **Ctrl+Home** — Navigate to the first cell
* **Ctrl+End** — Navigate to the last cell
* **Page Up/Page Down** — Scroll vertically by one page

For detailed keyboard behavior documentation, refer to the [keyboard behavior guide](https://help.syncfusion.com/flutter/datagrid/selection#keyboard-behavior).

The following example enables keyboard navigation:

{% tabs %}
{% highlight Dart %}

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_datagrid/datagrid.dart';

@override
Widget build(BuildContext context) {
return Scaffold(
body: SfDataGrid(
source: _employeeDataSource,
selectionMode: SelectionMode.single,
navigationMode: GridNavigationMode.cell,
columns: <GridColumn>[
GridColumn(
columnName: 'id',
label: Container(
padding: EdgeInsets.all(16.0),
alignment: Alignment.center,
child: Text('ID'),
),
),
GridColumn(
columnName: 'name',
label: Container(
padding: EdgeInsets.all(8.0),
alignment: Alignment.center,
child: Text('Name'),
),
),
GridColumn(
columnName: 'designation',
label: Container(
padding: EdgeInsets.all(8.0),
alignment: Alignment.center,
child: Text('Designation', overflow: TextOverflow.ellipsis),
),
),
GridColumn(
columnName: 'salary',
label: Container(
padding: EdgeInsets.all(8.0),
alignment: Alignment.center,
child: Text('Salary'),
),
),
],
),
);
}

{% endhighlight %}
{% endtabs %}

## Visual density

The row heights in [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) will automatically adjust based on the [visualDensity](https://api.flutter.dev/flutter/material/ThemeData/visualDensity.html) property.
Row heights in [SfDataGrid](https://pub.dev/documentation/syncfusion_flutter_datagrid/latest/datagrid/SfDataGrid-class.html) automatically adjust based on the [`visualDensity`](https://api.flutter.dev/flutter/material/ThemeData/visualDensity.html) property. This allows you to create compact or spacious layouts that adapt to user preferences and device capabilities.

{% tabs %}
{% highlight Dart %}

import 'package:flutter/material.dart';
import 'package:syncfusion_flutter_datagrid/datagrid.dart';

@override
Widget build(BuildContext context) {
return Theme(
data: ThemeData(visualDensity: VisualDensity.compact),
child: SfDataGrid(
source: _employeeDataSource,
columns: <GridColumn>[
GridColumn(
columnName: 'id',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerRight,
child: Text(
'ID',
overflow: TextOverflow.ellipsis,
)
)
),
GridColumn(
columnName: 'name',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerLeft,
child: Text(
'Name',
overflow: TextOverflow.ellipsis,
)
)
),
GridColumn(
columnName: 'salary',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerRight,
child: Text(
'Salary',
overflow: TextOverflow.ellipsis,
)
)
@override
Widget build(BuildContext context) {
return Scaffold(
body: Theme(
data: ThemeData(visualDensity: VisualDensity.compact),
child: SfDataGrid(
source: _employeeDataSource,
columns: <GridColumn>[
GridColumn(
columnName: 'id',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerRight,
child: Text('ID', overflow: TextOverflow.ellipsis),
),
),
GridColumn(
columnName: 'name',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerLeft,
child: Text('Name', overflow: TextOverflow.ellipsis),
),
),
GridColumn(
columnName: 'salary',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerRight,
child: Text('Salary', overflow: TextOverflow.ellipsis),
),
),
GridColumn(
columnName: 'designation',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerLeft,
child: Text('Designation', overflow: TextOverflow.ellipsis),
),
),
],
),
GridColumn(
columnName: 'designation',
label: Container(
padding: EdgeInsets.symmetric(horizontal: 16.0),
alignment: Alignment.centerLeft,
child: Text(
'Designation',
overflow: TextOverflow.ellipsis,
)
)
)
]
)
);
}
),
);
}

{% endhighlight %}
{% endtabs %}
Expand Down
Loading