User Interface low complexity mobile
1
Dependencies
0
Dependents
0
Entities
1
Integrations

Description

Accessible list-based alternative to the map that always remains available for screen reader users and low-vision users who cannot interact with the visual map. Displays the same filtered set of mentors as the map, using the shared mentor card widget, with full VoiceOver/TalkBack support.

Feature: Geographic Peer Mentor Map View

mentor-list-fallback

Summaries

The Mentor List Fallback View ensures that no student or coordinator is excluded from the peer mentor discovery experience due to a visual disability or device limitation. By providing a fully accessible, screen-reader-compatible list that mirrors the map's filtered mentor data exactly, the platform upholds inclusivity as a first-class product value rather than an afterthought. This protects the organization against accessibility liability and reinforces trust with users who depend on assistive technology, a segment often underserved by mobile applications and deeply loyal to platforms that get accessibility right.

Low-complexity component with a single dependency on mentor-location-service for fetching the filtered mentor dataset. It must be developed in coordination with the map-filter-panel to ensure identical filter criteria (MentorFilterCriteria) are applied consistently between the map and list views — a mismatch here would be a visible UX defect. Schedule alongside view-toggle-button in the same sprint for integrated testing. Accessibility testing with real devices using VoiceOver and TalkBack is a hard requirement before sign-off.

The shared mentor card widget should be leveraged to avoid duplicating card layout logic, reducing implementation scope.

Mentor List Fallback renders a scrollable, semantically correct list of PeerMentor items sourced via the mentor-location-service using the same MentorFilterCriteria applied by the map view. It uses the shared mentor card widget for consistent card rendering and exposes applyFilters(MentorFilterCriteria criteria) to receive filter updates from the parent screen. onMentorSelected(String mentorId) triggers navigation to the mentor detail screen. Implement using Flutter's ListView.builder with Semantics wrappers on each item providing full name, specialization, and availability as a combined accessible label.

Ensure scroll position is preserved when toggling back from map view using a ScrollController passed from the parent or stored in state.

Responsibilities

  • Render screen-reader-compatible list of filtered mentors
  • Apply the same active filter criteria as the map view
  • Navigate to peer mentor detail screen on item tap

Interfaces

build(BuildContext context)
applyFilters(MentorFilterCriteria criteria)
onMentorSelected(String mentorId)

Relationships

Dependencies (1)

Components this component depends on

Used Integrations (1)

External integrations and APIs this component relies on