Brukerens retningspil i kartet er hvit og forsvinner på lyse underlag #16

Closed
opened 2026-04-29 16:06:45 +02:00 by olemd · 1 comment
Owner

Problem

Når brukerens hastighet er høy nok til at OSMDroid bytter fra «person»-ikonet til «retningspil»-ikonet i MyLocationNewOverlay, blir pilen tilnærmet usynlig: den er heltrukken hvit uten kontur eller skygge. På lyse kart-tiles (snø, sand, brede veifyll, lyse OSM-temaer) forsvinner den helt i underlaget.

Reproduksjon

  1. Åpne kartet med GPS aktivert.
  2. Beveg deg raskt nok til at OSMDroid registrerer en retning (gå/sykle/kjør).
  3. Ikonet skifter til pil — pilen er hvit på hvit/lys bakgrunn.

Årsak

MainActivity instansierer MyLocationNewOverlay(GpsMyLocationProvider(this), this) (ca. linje 190) uten å overstyre setDirectionIcon(...) eller setPersonIcon(...). OSMDroid bruker da innebygde person.png / direction_arrow.png, som begge er hvite og uten kontur/skygge.

Forslag til løsning

  1. Egen vector-pil i app/src/main/res/drawable/ (ic_user_direction.xml) med:
    • Solid fyll i en kontrastfarge (f.eks. blå som Material colorPrimary eller systemets accent-farge), og
    • mørk eller hvit kontur (motsatt farge av fyllet) — gir kontrast både mot lys og mørk bakgrunn (WCAG 2.2 — informasjon må ikke formidles av farge alene; kontrasten må også fungere).
  2. Sett ikonet eksplisitt på overlay-en:
    myLocationOverlay?.setDirectionIcon(directionBitmap)
    myLocationOverlay?.setPersonIcon(personBitmap)
    
  3. Vurder også en lett drop-shadow eller halo-ring (typisk Google-Maps-løsning: blå pil i hvit ring) for å løse problemet med svært varierte underlag.
  4. Sjekk PWA-en (pwa/) for samme problem — Leaflet bruker sitt eget ikon og kan ha samme synlighetssvakhet.

Tilgjengelighet

  • Sørg for ≥3:1 kontrast mot både lyse og mørke kart-tiles (WCAG 2.2 AA for ikke-tekstlig innhold).
  • Ikke avhengig av farge alene — formen (pil vs. prikk/person) bærer informasjonen, men en kontur sikrer at formen faktisk synes.

Kontekst

Identifisert i felttest. Lavt-til-moderat omfang (én vector-fil + to setter-kall), men direkte synlig forbedring for hovedflyten.

## Problem Når brukerens hastighet er høy nok til at OSMDroid bytter fra «person»-ikonet til «retningspil»-ikonet i `MyLocationNewOverlay`, blir pilen tilnærmet usynlig: den er heltrukken hvit uten kontur eller skygge. På lyse kart-tiles (snø, sand, brede veifyll, lyse OSM-temaer) forsvinner den helt i underlaget. ## Reproduksjon 1. Åpne kartet med GPS aktivert. 2. Beveg deg raskt nok til at OSMDroid registrerer en retning (gå/sykle/kjør). 3. Ikonet skifter til pil — pilen er hvit på hvit/lys bakgrunn. ## Årsak `MainActivity` instansierer `MyLocationNewOverlay(GpsMyLocationProvider(this), this)` (ca. linje 190) uten å overstyre `setDirectionIcon(...)` eller `setPersonIcon(...)`. OSMDroid bruker da innebygde `person.png` / `direction_arrow.png`, som begge er hvite og uten kontur/skygge. ## Forslag til løsning 1. **Egen vector-pil** i `app/src/main/res/drawable/` (`ic_user_direction.xml`) med: - Solid fyll i en kontrastfarge (f.eks. blå som Material `colorPrimary` eller systemets `accent`-farge), og - mørk eller hvit kontur (motsatt farge av fyllet) — gir kontrast både mot lys og mørk bakgrunn (WCAG 2.2 — informasjon må ikke formidles av farge alene; kontrasten må også fungere). 2. Sett ikonet eksplisitt på overlay-en: ```kotlin myLocationOverlay?.setDirectionIcon(directionBitmap) myLocationOverlay?.setPersonIcon(personBitmap) ``` 3. Vurder også en lett drop-shadow eller halo-ring (typisk Google-Maps-løsning: blå pil i hvit ring) for å løse problemet med svært varierte underlag. 4. Sjekk PWA-en (`pwa/`) for samme problem — Leaflet bruker sitt eget ikon og kan ha samme synlighetssvakhet. ## Tilgjengelighet - Sørg for ≥3:1 kontrast mot både lyse og mørke kart-tiles (WCAG 2.2 AA for ikke-tekstlig innhold). - Ikke avhengig av farge alene — formen (pil vs. prikk/person) bærer informasjonen, men en kontur sikrer at formen *faktisk synes*. ## Kontekst Identifisert i felttest. Lavt-til-moderat omfang (én vector-fil + to setter-kall), men direkte synlig forbedring for hovedflyten.
olemd closed this issue 2026-04-29 16:15:11 +02:00
Author
Owner

Fikset i d2291a2. Erstatter OSMDroid sine hvite stock-bitmaps med orange dot/chevron med hvit halo + skygge — silhuetten holder ≥3:1 kontrast både mot lyse og mørke kart-tiles. Anker på (0.5, 0.5) for begge ikoner. Verifisert med vellykket build (assembleStandardDebug). Visuell test gjenstår på enhet/emulator.

Fikset i d2291a2. Erstatter OSMDroid sine hvite stock-bitmaps med orange dot/chevron med hvit halo + skygge — silhuetten holder ≥3:1 kontrast både mot lyse og mørke kart-tiles. Anker på (0.5, 0.5) for begge ikoner. Verifisert med vellykket build (assembleStandardDebug). Visuell test gjenstår på enhet/emulator.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
olemd/tilfluktsrom#16
No description provided.