From 0efb599b8cb0bea2a3055e24a72920f4c73f2f78 Mon Sep 17 00:00:00 2001 From: Ole-Morten Duesund Date: Fri, 17 Apr 2026 19:05:46 +0200 Subject: [PATCH] Bump versjon til v1.9.0 (versionCode 13) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Publiserer a11y-utbedringene fra forrige commit. User-Agent i ShelterRepository er oppdatert til å matche versjonen. I ACCESSIBILITY.md er de fire utbedrede WCAG-avvikene flyttet fra §3.1 til et nytt §7 Historikk under versjon 1.9.0. §3.1 slår nå fast at ingen gjenværende avvik er identifisert utover §3.2 (uforholdsmessig byrde på Leaflet-kartet). Uutilsynet/Digdir er bekreftet som riktig tilsynsmyndighet. Co-Authored-By: Claude Opus 4.7 (1M context) --- ACCESSIBILITY.md | 25 +++++++++++-------- app/build.gradle.kts | 4 +-- .../tilfluktsrom/data/ShelterRepository.kt | 2 +- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/ACCESSIBILITY.md b/ACCESSIBILITY.md index af19484..ca78220 100644 --- a/ACCESSIBILITY.md +++ b/ACCESSIBILITY.md @@ -12,7 +12,7 @@ ## 1. Samsvarsstatus -Tilfluktsrom er **delvis i samsvar** med kravene i EN 301 549 (basert på WCAG 2.2 nivå AA). De kjente avvikene er listet opp i avsnitt 3. +Tilfluktsrom er **delvis i samsvar** med kravene i EN 301 549 (basert på WCAG 2.2 nivå AA). Statusen er «delvis» fordi ett punkt er dokumentert som uforholdsmessig byrde (se avsnitt 3.2); egenkontroll har ikke identifisert andre gjenværende avvik på dette nivået per versjon 1.9.0. ## 2. Referansestandard @@ -22,12 +22,7 @@ Erklæringen bygger på EU-direktiv 2016/2102 (Web Accessibility Directive, WAD) ### 3.1 Manglende samsvar med regelverket -Følgende avvik er identifisert ved egenkontroll. Utbedringer er lagt inn i kildekoden per 17. april 2026 og inngår i første utgave som bygges og publiseres etter denne datoen. Når utgaven er publisert, flyttes hvert punkt til et «Utbedret»-avsnitt med konkret versjonsnummer, og avsnitt 1 *Samsvarsstatus* oppdateres tilsvarende. - -- **WCAG 2.4.7 Synlig fokus.** Android-appen hadde ikke tydelig synlig fokusmarkering på alle egendefinerte visninger (bl.a. FAB-knapper og den egenutviklede retningspilen `DirectionArrowView`). Skjermtastatur- og bryterbrukere kunne derfor miste oversikten over hvor fokus var plassert. *Status per 17. april 2026: utbedret i kildekode. Systemets standard fokusmarkering er slått på for temaet `Theme.Tilfluktsrom` via `android:defaultFocusHighlightEnabled`, og bundne ripple-bakgrunner (`?attr/selectableItemBackground`) er tatt i bruk på ikonknappene slik at fokusringen blir synlig ved tastatur- og bryternavigasjon. Venter på utgivelse.* -- **WCAG 4.1.2 Navn, rolle, verdi.** Retningspilen i kompassvisningen er tegnet på et `Canvas` og eksponerte ikke retnings- og avstandsinformasjon til TalkBack på en måte som ble oppdatert dynamisk. Skjermleserbrukere fikk derfor ikke samme navigasjonsstøtte som seende brukere. *Status per 17. april 2026: utbedret i kildekode. `DirectionArrowView` rapporterer seg som `ImageView` og setter innholdsbeskrivelse på formen «Retning til tilfluktsrom: , unna»; endringer annonseres til TalkBack hver gang retningen krysser en 45°-sektor, med 750 ms-struping mot spam. Retningsbegrepene er oversatt til både bokmål og nynorsk. Venter på utgivelse.* -- **WCAG 1.4.3 Minimumskontrast.** Advarselsbanneret for manglende offline-kart brukte bakgrunnsfarge `#E65100` med hvit tekst. Kontrastforholdet var 3,75 : 1, under AA-kravet på 4,5 : 1. *Status per 17. april 2026: utbedret i kildekode. Bakgrunnsfargen er endret til `#BF360C`, som gir kontrast på omkring 5,5 : 1 mot hvit tekst. Venter på utgivelse.* -- **WCAG 2.3.3 Bevegelse fra interaksjon.** Retningspilen roterte kontinuerlig med kompasset mens brukeren vendte på enheten. Appen tok ikke hensyn til Android-innstillingen «Fjern animasjoner» / redusert bevegelse, og brukere med vestibulære plager hadde ikke mulighet til å slå av den kontinuerlige rotasjonen. *Status per 17. april 2026: utbedret i kildekode. Når `Settings.Global.ANIMATOR_DURATION_SCALE` er 0 (brukeren har slått av animasjoner), snapper retningspilen til nærmeste av åtte 45°-sektorer i stedet for å rotere kontinuerlig. Venter på utgivelse.* +Per versjon 1.9.0 har egenkontroll ikke identifisert gjenværende avvik på dette nivået i Android-appen. Tidligere identifiserte avvik som er utbedret, er dokumentert i avsnitt 7 (Historikk). ### 3.2 Uforholdsmessig byrde @@ -64,6 +59,17 @@ Er du ikke fornøyd med svaret du får, kan saken meldes til tilsynsorganet: - **Nettsted:** https://www.uutilsynet.no/ - **Klagerett:** Du har rett til å melde manglende universell utforming av digitale tjenester til tilsynet. +## 7. Historikk + +### Versjon 1.9.0 — 17. april 2026 + +Følgende avvik ble identifisert ved egenkontroll og utbedret i denne versjonen: + +- **WCAG 2.4.7 Synlig fokus.** Systemets standard fokusmarkering er slått på for temaet `Theme.Tilfluktsrom` via `android:defaultFocusHighlightEnabled`, og bundne ripple-bakgrunner (`?attr/selectableItemBackground`) er tatt i bruk på ikonknappene slik at fokusringen er synlig ved tastatur- og bryternavigasjon. +- **WCAG 4.1.2 Navn, rolle, verdi.** `DirectionArrowView` rapporterer seg nå som `ImageView` og setter innholdsbeskrivelse på formen «Retning til tilfluktsrom: , unna»; endringer annonseres til TalkBack hver gang retningen krysser en 45°-sektor, med 750 ms-struping mot spam. Retningsbegrepene er oversatt til både bokmål og nynorsk. +- **WCAG 1.4.3 Minimumskontrast.** Advarselsbanneret for manglende offline-kart hadde tidligere bakgrunnsfarge `#E65100` med hvit tekst (kontrastforhold 3,75 : 1, under AA-kravet på 4,5 : 1). Bakgrunnsfargen er endret til `#BF360C`, som gir kontrast på omkring 5,5 : 1 mot hvit tekst. +- **WCAG 2.3.3 Bevegelse fra interaksjon.** Retningspilen rotert tidligere kontinuerlig med kompasset, uten hensyn til Android-innstillingen «Fjern animasjoner». Når `Settings.Global.ANIMATOR_DURATION_SCALE` er 0, snapper retningspilen nå til nærmeste av åtte 45°-sektorer i stedet for å rotere kontinuerlig. + --- ## Notes for the maintainer (English — strip before publication) @@ -71,11 +77,10 @@ Er du ikke fornøyd med svaret du får, kan saken meldes til tilsynsorganet: This statement is honest today but must be kept up to date. Before using it as a deliverable alongside a public-sector licensing agreement or a live public-sector deployment: - [ ] Replace `olemd@odinprosjekt.no` in §5 with a dedicated, monitored, public-facing address that the licensee (or you, if self-hosting) commits to reading within the stated response time. -- [ ] After each release that ships an accessibility fix, move the corresponding item from §3.1 to an "Utbedret i versjon X.Y.Z" (resolved) list and update §1 *Samsvarsstatus* accordingly. When §3.1 is empty, §1 becomes "i samsvar". -- [ ] Replace each *Venter på utgivelse* status with a concrete version number as soon as that version ships, so buyers can verify against the changelog. +- [ ] After each release that ships an accessibility fix, move the corresponding item from §3.1 to §7 (Historikk) under a new `Versjon X.Y.Z` subsection, and update §1 *Samsvarsstatus* accordingly. When §3.1 and §3.2 are both empty, §1 becomes "i samsvar". - [ ] Update §4 *Dato for siste gjennomgang* at every release where user-facing code or content changes, even if nothing in §3 changes. - [ ] Commission an independent WCAG 2.2 AA audit before the first public-sector deployment. §4 must then be amended from "Egenkontroll" to cite the auditor, their contact, and the audit date. -- [ ] Confirm §6 *Tilsynsmyndighet* matches the actual supervisory body for the buyer's sector. For most Norwegian public-sector bodies it is Digdir/Uutilsynet, but sector-specific services (e.g. under DSB or Sivilforsvaret) may have alternative complaint paths. +- [x] Confirm §6 *Tilsynsmyndighet*. Digdir / Uutilsynet is the correct supervisory body for this app (confirmed 2026-04-17); no buyer-specific override expected. - [ ] Re-verify the §3.2 disproportionate-burden claim before publication. WAD requires a documented cost-vs-benefit assessment, not a bare claim. Keep a short internal memo on file. - [ ] If an English translation is provided for international reviewers, mark it clearly as a courtesy translation and keep the Bokmål version authoritative. - [ ] Re-verify: is the deployed service actually covered by WAD? Privately-owned apps are exempt; coverage begins once the app is procured by a public-sector body or otherwise delivers a public-sector service. diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 945741e..51f2552 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "no.naiv.tilfluktsrom" minSdk = 26 targetSdk = 35 - versionCode = 12 - versionName = "1.8.0" + versionCode = 13 + versionName = "1.9.0" // Deep link domain — single source of truth for manifest + Kotlin code val deepLinkDomain = "tilfluktsrom.naiv.no" diff --git a/app/src/main/java/no/naiv/tilfluktsrom/data/ShelterRepository.kt b/app/src/main/java/no/naiv/tilfluktsrom/data/ShelterRepository.kt index 048a93d..a668bd7 100644 --- a/app/src/main/java/no/naiv/tilfluktsrom/data/ShelterRepository.kt +++ b/app/src/main/java/no/naiv/tilfluktsrom/data/ShelterRepository.kt @@ -46,7 +46,7 @@ class ShelterRepository(private val context: Context) { .readTimeout(60, TimeUnit.SECONDS) .addInterceptor(Interceptor { chain -> chain.proceed(chain.request().newBuilder() - .header("User-Agent", "Tilfluktsrom/1.8.0") + .header("User-Agent", "Tilfluktsrom/1.9.0") .build()) }) .build()