Skip to content

[a11y] ExpansionTile missing expansion details and interaction behavior on web #143852

@math1man

Description

@math1man

Internal: b/326218346

Steps to reproduce

This is basically the same issue as #120650, but specific to web. I believe that issue was fixed but only for Android and iOS (not sure about other platforms either). When using a screen reader on an ExpansionTile element, it reads as "group" instead of "button" and gives no hint as to how to activate it. On Android and iOS, it reads something like "Double-tap to expand" or "Double-tap to collapse".

I'm able to reproduce the iissue with the code sample below just in dartpad, using VoiceOver on my Mac laptop. Run the sample and navigate to the ExpansionTile element using the screen reader.

Expected results

Screen reader should read something like "Hello World! button, double tap to expand"

Actual results

Screen reader reads "Hello World! group"

Code sample

Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        body: Center(
          child: ExpansionTile(
            title: Text('Hello, World!'),
            children: [
              Text('Item 1'),
              Text('Item 2'),
              Text('Item 3'),
            ],
          ),
        ),
      ),
    );
  }
}

Screenshots or Video

None

Logs

N/A

Flutter Doctor output

N/A

Metadata

Metadata

Assignees

Labels

P0Critical issues such as a build break or regressiona: accessibilityAccessibility, e.g. VoiceOver or TalkBack. (aka a11y)customer: googleVarious Google teamscustomer: huggsy (g3)f: material designflutter/packages/flutter/material repository.found in release: 3.19Found to occur in 3.19found in release: 3.20Found to occur in 3.20frameworkflutter/packages/flutter repository. See also f: labels.has reproducible stepsThe issue has been confirmed reproducible and is ready to work onplatform-webWeb applications specificallyr: fixedIssue is closed as already fixed in a newer versionteam-webOwned by Web platform teamtriaged-webTriaged by Web platform team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions