Skip to content

[BUG] AX - Ordered List Item (ol > li) number announced after element #1492

@alexismandelias

Description

@alexismandelias

Describe the bug:

The announcement of the accessibility reader (Android - Talkback / iOS - VoiceOver) is incorrect for <li> elements which are nested in an <ol> element.

Specifically, the number of the list item is announced after the list item content, whereas it should be announced before the list item content.

See more details below in section Expected behavior.

HTML to reproduce the issue:

<ol>
    <li>First list item</li>
    <li>Second list item</li>
    <li>Third list item</li>
</ol>

Html widget configuration:

const html = '<ol><li>First item</li><li>Second item</li><li>Third item</li></ol>';

Column(
  children: [
    const Text('Before'),
    Html(data: html),
    const Text('After'),
  ],
);

Expected behavior:

AX Reader should announce the following, after the user swipes "next" on each Widget:

"Before"
"1. First item. 2. Second item. 3. Second item."
"After"

Actual behavior:

AX Reader announces the following, after the user swipes "next" on each Widget:

"Before"
"First item. 1. Second item. 2. Second item. 3."
"After"

Screen Recording:

ax-li-bug.webm

Device details and Flutter/Dart/flutter_html versions:

flutter --version

Flutter 3.32.4 • channel [user-branch] • unknown source
Framework • revision 6fba2447e9 (8 weeks ago) • 2025-06-12 19:03:56 -0700
Engine • revision 8cd19e509d (8 weeks ago) • 2025-06-12 16:30:12 -0700
Tools • Dart 3.8.1 • DevTools 2.45.1

dart --version

Dart SDK version: 3.8.1 (stable) (Wed May 28 00:47:25 2025 -0700) on "macos_arm64"

flutter_html version

flutter_html: ^3.0.0-beta.2

Additional info:

  • This happens both on Android and on iOS.
  • Using the Accessibility Inspector tool for iOS, I found that the AX label that is generated for the Html widget is: "First item\n1. \nSecond item\n2. \nThird item\n3.".
Image

A picture of a cute animal (not mandatory but encouraged)

My own cat attempting to eat me:
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions