Defects
This button is 17×27, below the 24×24 that WCAG 2.5.8 requires and below the Android minimum of 48×48, so it is hard to hit for anyone with limited dexterity.
serioustap-target-sizeWCAG 2.5.8 (AA) / EN 301 549 §11.2.5.8
lib/ui/common/controls/buttons.dart:200
Grow the tap area without growing the icon: wrap the child in a SizedBox of 48×48, or give the button a minimumSize.
Seen on: Wonder details, Editorial, Photo gallery, Artefacts, Timeline, Collection (43 times)
"the
Great Wall" responds to a tap but cannot take keyboard focus, so someone using a keyboard, a switch or Full Keyboard Access cannot reach it.
seriousnot-keyboard-operableWCAG 2.1.1 (A) / EN 301 549 §11.2.1.1
lib/ui/screens/home/wonders_home_screen.dart:318
Use InkWell or a Material button instead of GestureDetector, or wrap the child in FocusableActionDetector with an ActivateIntent that does what the tap does.
Seen on: Home, Wonder details, Editorial, Photo gallery, Artefacts, Timeline, Collection (7 times)
"the
Great Wall" has a contrast ratio of 2.29:1 against its background, below the 3.0:1 required at 64pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/wonder_illustrations/common/wonder_title_text.dart:50
Darken the text or lighten what is behind it. Measured #164F2A against #5B8474.
Seen on: Wonder details, Artefacts, Collection (6 times)
"100" has a contrast ratio of 1.00:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/timeline/widgets/_year_markers.dart:72
Darken the text or lighten what is behind it. Measured #1E1B18 against #1E1B18.
Seen on: Timeline (5 times)
"Last known date recorded in the Osari..." has a contrast ratio of 2.43:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/common/timeline_event_card.dart:51
Darken the text or lighten what is behind it. Measured #E4935D against #FFFFFF.
Seen on: Artefacts, Timeline, Collection (4 times)
"Tripod Plate
9th–10th century" responds to a tap but cannot take keyboard focus, so someone using a keyboard, a switch or Full Keyboard Access cannot reach it.
seriousnot-keyboard-operableWCAG 2.1.1 (A) / EN 301 549 §11.2.1.1
lib/ui/screens/artifact/artifact_carousel/widgets/_bottom_text_content.dart:45
Use InkWell or a Material button instead of GestureDetector, or wrap the child in FocusableActionDetector with an ActivateIntent that does what the tap does.
Seen on: Photo gallery, Artefacts, Timeline, Collection (4 times)
This button is 114×23, below the 24×24 that WCAG 2.5.8 requires and below the Android minimum of 48×48, so it is hard to hit for anyone with limited dexterity.
serioustap-target-sizeWCAG 2.5.8 (AA) / EN 301 549 §11.2.5.8
lib/ui/screens/artifact/artifact_carousel/widgets/_bottom_text_content.dart:45
Grow the tap area without growing the icon: wrap the child in a SizedBox of 48×48, or give the button a minimumSize.
Seen on: Artefacts, Timeline, Collection (3 times)
"9th–10th century" has a contrast ratio of 1.94:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/artifact/artifact_carousel/widgets/_bottom_text_content.dart:71
Darken the text or lighten what is behind it. Measured #272625 against #535251.
Seen on: Artefacts, Timeline, Collection (3 times)
This icon is #FFFFFF on #FFFFFF, a contrast ratio of 1.00:1, below the 3.0:1 an icon needs to be made out.
seriousicon-contrastWCAG 1.4.11 (AA) / EN 301 549 §11.1.4.11
lib/ui/screens/home/widgets/_animated_arrow_button.dart:39
Darken or lighten the icon colour. If it is purely decorative and a label beside it already says the same thing, wrap it in ExcludeSemantics so it is not treated as meaningful.
Seen on: Wonder details, Photo gallery, Artefacts (3 times)
A screen reader reaches "back" right after "Facts and History", but it sits 567 pixels higher up the screen, so the reading order jumps backwards.
seriousreading-orderWCAG 1.3.2 (A) / EN 301 549 §11.1.3.2
lib/ui/common/controls/buttons.dart:200
Reorder the widgets, or set an explicit order with Semantics(sortKey: OrdinalSortKey(...)) on this subtree.
Seen on: Wonder details, Timeline (2 times)
"BROWSE ALL ARTIFACTS" has a contrast ratio of 1.13:1 against its background, below the 4.5:1 required at 14pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/common/controls/buttons.dart:68
Darken the text or lighten what is behind it. Measured #1E1B18 against #272625.
Seen on: Collection (2 times)
"THE GREAT MAYAN CITY" has a contrast ratio of 4.22:1 against its background, below the 4.5:1 required at 14pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/editorial/widgets/_title_text.dart:35
Darken the text or lighten what is behind it. Measured #1E1B18 against #688750.
Seen on: Timeline, Collection (2 times)
"YUCATAN, MEXICO" has a contrast ratio of 4.22:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/editorial/widgets/_title_text.dart:64
Darken the text or lighten what is behind it. Measured #1E1B18 against #688750.
Seen on: Timeline, Collection (2 times)
"550 CE to 1550 CE" has a contrast ratio of 1.13:1 against its background, below the 4.5:1 required at 14pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/editorial/widgets/_title_text.dart:88
Darken the text or lighten what is behind it. Measured #1E1B18 against #272625.
Seen on: Artefacts, Collection (2 times)
"ARTIFACTS" has a contrast ratio of 1.13:1 against its background, below the 4.5:1 required at 14pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/common/controls/app_header.dart:43
Darken the text or lighten what is behind it. Measured #1E1B18 against #272625.
Seen on: Timeline
"832" has a contrast ratio of 1.13:1 against its background, below the 3.0:1 required at 24pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/common/timeline_event_card.dart:35
Darken the text or lighten what is behind it. Measured #1E1B18 against #272625.
Seen on: Artefacts
"CE" has a contrast ratio of 1.00:1 against its background, below the 4.5:1 required at 14pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/common/timeline_event_card.dart:39
Darken the text or lighten what is behind it. Measured #272625 against #272625.
Seen on: Artefacts
"Tripod Plate" has a contrast ratio of 1.00:1 against its background, below the 3.0:1 required at 32pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/artifact/artifact_carousel/widgets/_bottom_text_content.dart:22
Darken the text or lighten what is behind it. Measured #272625 against #272625.
Seen on: Collection
At 200% text size the layout breaks: RenderFlex overflows by 19 pixels on the bottom
seriouslayout-overflow-at-scaleWCAG 1.4.4 (AA) / EN 301 549 §11.1.4.4
lib/ui/screens/artifact/artifact_carousel/widgets/_bottom_text_content.dart:38
Let the row wrap, make the column scroll, or give the text room to grow instead of a fixed height.
Seen on: Photo gallery
"0% discovered" has a contrast ratio of 1.55:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/collection/widgets/_collection_footer.dart:50
Darken the text or lighten what is behind it. Measured #272625 against #544032.
Seen on: Collection
"0 of 24" has a contrast ratio of 2.32:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/collection/widgets/_collection_footer.dart:55
Darken the text or lighten what is behind it. Measured #272625 against #615D5A.
Seen on: Collection
"COLOSSEUM" has a contrast ratio of 1.00:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/collection/widgets/_collection_list_card.dart:36
Darken the text or lighten what is behind it. Measured #272625 against #272625.
Seen on: Collection
"Journey to the past
Navigate the intersection of time, art, and culture." responds to a tap but cannot take keyboard focus, so someone using a keyboard, a switch or Full Keyboard Access cannot reach it.
seriousnot-keyboard-operableWCAG 2.1.1 (A) / EN 301 549 §11.2.1.1
lib/ui/screens/intro/intro_screen.dart:117
Use InkWell or a Material button instead of GestureDetector, or wrap the child in FocusableActionDetector with an ActivateIntent that does what the tap does.
Seen on: Welcome
"Swipe left to continue" responds to a tap but cannot take keyboard focus, so someone using a keyboard, a switch or Full Keyboard Access cannot reach it.
seriousnot-keyboard-operableWCAG 2.1.1 (A) / EN 301 549 §11.2.1.1
lib/ui/screens/intro/intro_screen.dart:259
Use InkWell or a Material button instead of GestureDetector, or wrap the child in FocusableActionDetector with an ActivateIntent that does what the tap does.
Seen on: Welcome
"Swipe left to continue" can be activated but is not announced as a button or a link, so a screen reader user hears the text with no sign that it does anything.
seriousrole-not-exposedWCAG 4.1.2 (A) / EN 301 549 §11.4.1.2
lib/ui/screens/intro/intro_screen.dart:259
Wrap it in Semantics(button: true), or build it from ListTile or a Material button, which announce themselves.
Seen on: Welcome
This button is 146×23, below the 24×24 that WCAG 2.5.8 requires and below the Android minimum of 48×48, so it is hard to hit for anyone with limited dexterity.
serioustap-target-sizeWCAG 2.5.8 (AA) / EN 301 549 §11.2.5.8
lib/ui/screens/intro/intro_screen.dart:259
Grow the tap area without growing the icon: wrap the child in a SizedBox of 48×48, or give the button a minimumSize.
Seen on: Welcome
At 200% text size the layout breaks: RenderFlex overflows by 174 pixels on the right
seriouslayout-overflow-at-scaleWCAG 1.4.4 (AA) / EN 301 549 §11.1.4.4
lib/ui/screens/wonder_events/widgets/_wonder_image_with_timeline.dart:107
Let the row wrap, make the column scroll, or give the text room to grow instead of a fixed height.
Seen on: Artefacts
"550 CE to 1550 CE" has a contrast ratio of 1.13:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/wonder_events/widgets/_wonder_image_with_timeline.dart:112
Darken the text or lighten what is behind it. Measured #1E1B18 against #272625.
Seen on: Collection
"Early Modern Era" has a contrast ratio of 1.13:1 against its background, below the 4.5:1 required at 16pt.
serioustext-contrastWCAG 1.4.3 (AA) / EN 301 549 §11.1.4.3
lib/ui/screens/wonder_events/widgets/_wonder_image_with_timeline.dart:120
Darken the text or lighten what is behind it. Measured #1E1B18 against #272625.
Seen on: Collection
This button is 42×187. That clears the 24×24 the standard asks for, so it is not a breach of EN 301 549, but it is below the Android minimum of 48×48 and awkward to hit.
moderatetap-target-sizePlatform guidance target size
lib/ui/screens/photo_gallery/photo_gallery.dart:277
Grow the tap area without growing the icon: wrap the child in a SizedBox of 48×48, or give the button a minimumSize.
Seen on: Editorial, Photo gallery, Artefacts, Timeline, Collection (30 times)
2 controls on this screen share the accessible name "collectible item", so they cannot be told apart by ear.
moderateduplicate-labelWCAG 4.1.2 (A) / EN 301 549 §11.4.1.2
lib/ui/common/controls/buttons.dart:200
Add what each one acts on, for example "More options for Basket" instead of "More".
Seen on: Photo gallery, Artefacts, Timeline, Collection (20 times)
This button is 113×25. That clears the 24×24 the standard asks for, so it is not a breach of EN 301 549, but it is below the Android minimum of 48×48 and awkward to hit.
moderatetap-target-sizePlatform guidance target size
lib/ui/screens/home/wonders_home_screen.dart:318
Grow the tap area without growing the icon: wrap the child in a SizedBox of 48×48, or give the button a minimumSize.
Seen on: Wonder details, Editorial, Photo gallery, Artefacts, Timeline, Collection (6 times)
2 controls on this screen share the accessible name "collectible item", so they cannot be told apart by ear.
moderateduplicate-labelWCAG 4.1.2 (A) / EN 301 549 §11.4.1.2
lib/ui/screens/photo_gallery/photo_gallery.dart:277
Add what each one acts on, for example "More options for Basket" instead of "More".
Seen on: Photo gallery, Artefacts (2 times)