Level Level Accessibility, logo

Toegankelijkheidsonderzoek Rijks Rooster Applicatie (Software)

Informatie

Datum:
Standaard:
WCAG 2.2 Level AA
Auditor:
Level Level
Opdrachtgever:
Ministerie van Binnenlandse Zaken en Koninkrijksrelaties

Samenvatting

De mobiele software toepassing van de Rijks Rooster Applicatie maak gebruikt van de Mijn InPlanning app van Intus Workforce Solutions B.V. De applicatie is onderzocht tussen 3 en 13 augustus 2026. Het onderzoek is uitgevoerd aan de hand van de evaluatiemethode WCAG-EM en richtte zich op de apps voor zowel iOS als Android. Het doel van dit rapport is om te bepalen welke verbeteringen nodig zijn om de app toegankelijker te maken.

Belangrijkste aanbeveling

Het wordt sterk aanbevolen om de volledige app op zowel iOS als Android systematisch te doorlopen met een schermlezer en een extern toetsenbord. Juist bij deze bedieningswijzen zijn de meeste en meest blokkerende toegankelijkheidsproblemen gevonden. Gebruik op iOS VoiceOver en op Android TalkBack en test alle schermen, stappen en interacties van begin tot eind. Een aantal opvallende bevindingen zijn:

  • Verschillende onderdelen missen een duidelijke toegankelijke naam, rol en waarde. Hierdoor is voor schermlezergebruikers niet altijd duidelijk wat een element doet of hoe het kan worden bediend.
  • Meerdere functies en bedieningselementen zijn met een extern toetsenbord niet bereikbaar of niet te activeren. Ook is de toetsenbordfocus regelmatig onvoldoende zichtbaar of wijkt de focusvolgorde af van de visuele volgorde.

Door eerst de bediening met schermlezers en externe toetsenborden structureel te verbeteren, kunnen de grootste belemmeringen voor gebruikers van hulptechnologie worden weggenomen.

Bevindingen per criterium

StatusCriteria
✓ Voldoende34
✗ Onvoldoende15
— Niet van toepassing6
Totaal55

Problemen per expertise

ExpertiseAantal
Design4
Ontwikkelaar46
Totaal50

Problemen per platform

PlatformAantal
Alleen Android2
Alleen iOS3
Android + iOS44
Totaal49

Auditscope

Steekproef (in-scope pagina's)

  • Vergrendelscherm
  • Pincode vergeten
  • Start
  • Mijn rooster
  • Groep
  • Mutatieverzoek
  • Rooster accorderen
  • Wens
  • Verlofaanvraag
  • Annuleringsverzoek
  • Ruilverzoek
  • Profiel / Instellingen
  • Meer

Technologieën

  • React Native

Basisniveau van toegankelijkheid-ondersteuning

iOS 26.5 met VoiceOver en extern toetsenbord, Android 16 met Talkback en extern toetsenbord

Bevindingen per WCAG-criterium

1.1.1 Niet-tekstuele content (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 1.1.1(opens in a new tab)

Logo wordt niet uitgesproken

Ontwikkelaar

Op het inlogscherm staat het logo met de tekst ‘InPlanning’. Een schermlezer spreekt de naam van het logo niet uit, waardoor gebruikers die het scherm niet kunnen zien deze informatie missen.


Mogelijke oplossing

Voeg de tekst ‘InPlanning’ toe als alternatieve tekst van de afbeelding.


Platforms: iOS, Android

1.2.1 Louter-geluid en louter-videobeeld (vooraf opgenomen) (Level A)

Resultaat: ✓ Voldoende

1.2.2 Ondertitels voor doven en slechthorenden (vooraf opgenomen) (Level A)

Resultaat: ✓ Voldoende

1.2.3 Audiodescriptie of media-alternatief (vooraf opgenomen) (Level A)

Resultaat: ✓ Voldoende

1.2.4 Ondertitels voor doven en slechthorenden (live) (Level AA)

Resultaat: ✓ Voldoende

1.2.5 Audiodescriptie (vooraf opgenomen) (Level AA)

Resultaat: ✓ Voldoende

1.3.1 Info en relaties (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 1.3.1(opens in a new tab)

Kop ‘Activeringscode’ is niet afzonderlijk herkenbaar voor schermlezers

Ontwikkelaar

De visuele kop ‘Activeringscode’ en de instructietekst eronder worden door de schermlezer als één tekstblok uitgesproken. De kop wordt niet afzonderlijk als kop aangekondigd. Hierdoor is de visuele structuur van het scherm niet op dezelfde manier beschikbaar voor schermlezergebruikers. Zij kunnen de kop bovendien niet afzonderlijk vinden wanneer zij met de kopnavigatie navigeren.


Mogelijke oplossing

Maak ‘Activeringscode’ een afzonderlijk toegankelijk element en ken hier programmatisch de eigenschap kop aan toe. Plaats de instructietekst in een apart tekstelement. De schermlezer hoort bij het navigeren bijvoorbeeld eerst uit te spreken: ‘Activeringscode, kop.’ Bij de volgende veegbeweging wordt vervolgens de bijbehorende instructietekst uitgesproken.


Platforms: iOS, Android

  • Pincode vergeten

Volledige berichtkaarten worden als één lang toegankelijk element aangeboden

Ontwikkelaar

Onder ‘Mijn ongelezen berichten’ voegt de schermlezer alle informatie uit een berichtkaart samen tot één lang focusbaar element. Onder andere de afzender, verzenddatum, berichtdatum, status en berichttekst worden achter elkaar uitgesproken. De afzonderlijke onderdelen en hun onderlinge relaties zijn daardoor niet goed herkenbaar. Gebruikers kunnen de informatie niet per onderdeel verkennen en moeten steeds de volledige kaart laten uitspreken. Dit probleem komt overigens ook voor op het volledige berichtenoverzicht.


Mogelijke oplossing

Bied de inhoud van de berichtkaart aan als afzonderlijke toegankelijke tekstelementen, bijvoorbeeld:

  • afzender;
  • verzenddatum;
  • status ‘Ongelezen’;
  • berichtdatum;
  • korte berichttekst. Voeg daarnaast één duidelijk gelabelde actie toe. Zo kan de gebruiker de informatie per onderdeel lezen en vervolgens bewust kiezen om het volledige bericht te openen.

Platforms: iOS, Android

  • Start

Melding over overige ongelezen berichten ontbreekt voor schermlezers

Ontwikkelaar

Onderaan het overzicht staat de tekst ‘Je hebt meer ongelezen berichten…’. Deze tekst wordt volledig overgeslagen door de schermlezer. De focus gaat direct naar de knop ‘Naar berichten’. Hierdoor ontvangen schermlezergebruikers niet de informatie dat er meer ongelezen berichten beschikbaar zijn dan op de startpagina worden getoond.


Mogelijke oplossing

Neem de melding op in de toegankelijkheidsstructuur en plaats deze in de focusvolgorde vóór de knop ‘Naar berichten’.


Platforms: iOS, Android

  • Start

Paginatitel ‘Mijn rooster’ is niet als kop herkenbaar

Ontwikkelaar

De tekst ‘Mijn rooster’ is visueel vormgegeven als de hoofdkop van het scherm. De schermlezer spreekt de tekst echter niet als kop uit. Hierdoor is de visuele structuur niet programmatisch beschikbaar en kan de gebruiker de paginatitel niet via de kopnavigatie bereiken. Dit is overigens ook het geval voor het tabblad ‘Groep’.


Mogelijke oplossing

Maak ‘Mijn rooster’ een afzonderlijk toegankelijk element en ken hier programmatisch de eigenschap kop aan toe. De schermlezer hoort bijvoorbeeld uit te spreken: ‘Mijn rooster, kop.’


Platforms: iOS, Android

  • Mijn rooster
  • Groep

Gegevens in de dagindeling worden als één onduidelijk tekstblok uitgesproken

Ontwikkelaar

De schermlezer spreekt de verschillende gegevens onder ‘Dagindeling’ als één groot tekstblok uit. De kop (Dagindeling), tijden, het soort uren en de arbeidsduur worden achter elkaar genoemd, zonder dat steeds duidelijk is welke waarde bij welk gegeven hoort. Hierdoor kunnen gebruikers de afzonderlijke gegevens en hun onderlinge relaties moeilijk vaststellen.


Mogelijke oplossing

Bied ieder gegeven met een duidelijke programmatische naam en bijbehorende waarde aan. Gebruik bijvoorbeeld afzonderlijke elementen of een toegankelijke lijst- of tabelstructuur.


Platforms: iOS, Android

  • Mijn rooster

Knop voor uitleg over roosterstatussen is niet toegankelijk met een schermlezer

Ontwikkelaar

Bovenaan het scherm staat een informatiepictogram waarmee de uitleg over de verschillende roosterstatussen kan worden geopend. Dit pictogram is niet bruikbaar met een schermlezer. Hierdoor kan een schermlezergebruiker de legenda niet zelfstandig openen.


Mogelijke oplossing

Maak het informatiepictogram een focusbare en activeerbare knop. Geef de knop een naam die het doel beschrijft, in plaats van alleen het uiterlijk van het pictogram. De schermlezer kan bijvoorbeeld uitspreken: ‘Uitleg over roosterstatussen, knop.’ Wanneer de uitleg wordt geopend, verplaats de focus naar de kop van de uitleg. Zorg dat de sluitknop wordt aangekondigd als ‘Uitleg sluiten, knop’ en plaats de focus na het sluiten terug op de informatieknop.


Platforms: iOS, Android

  • Mijn rooster

Schermtitels binnen de processen vanuit ‘Regelen’ zijn niet als kop gemarkeerd

Ontwikkelaar

De visuele schermtitels binnen de verschillende processen en stappen vanuit ‘Regelen’ worden niet als kop door de schermlezer aangekondigd. Dit is onder andere vastgesteld bij:

  • ‘Kies eerst een datum’;
  • ‘Mutatiesoort’;
  • andere vervolg- en keuzeschermen binnen het mutatieverzoek.

Het probleem komt breder voor binnen de verschillende functionaliteiten die vanuit ‘Regelen’ worden geopend. Hierdoor is de schermstructuur niet programmatisch beschikbaar en kunnen gebruikers niet met de kopnavigatie naar de belangrijkste onderdelen navigeren.


Mogelijke oplossing

Doorloop alle processen die vanuit ‘Regelen’ kunnen worden gestart, waaronder mutatieverzoeken, rooster accorderen, wensen, verlofaanvragen, annuleringsverzoeken en ruilverzoeken. Maak de visuele titel van ieder scherm en iedere stap een afzonderlijk toegankelijk element met de eigenschap kop. De schermlezer hoort bijvoorbeeld uit te spreken: ‘Kies eerst een datum, kop.’ Pas dit consequent toe op alle hoofdschermen, tussenstappen, keuzevensters, controlepagina’s en bevestigingsschermen binnen de processen vanuit ‘Regelen’. Controleer vervolgens met de kopnavigatie of de schermtitels als kop bereikbaar zijn.


Platforms: iOS, Android

  • Mutatieverzoek
  • Rooster accorderen
  • Wens
  • Verlofaanvraag
  • Annuleringsverzoek
  • Ruilverzoek

Gegevens van verzonden verzoeken worden als één tekstblok uitgesproken

Ontwikkelaar

Op het scherm ‘Mijn verzonden verzoeken’ worden alle gegevens binnen een verzoekkaart door de schermlezer samengevoegd en als één lang element uitgesproken. De afzonderlijke labels, waarden en onderlinge relaties zijn hierdoor niet goed herkenbaar. Gebruikers kunnen de informatie bovendien niet per onderdeel verkennen.


Mogelijke oplossing

Bied ieder verzoek aan als een logisch gegroepeerd lijstitem, maar maak de afzonderlijke gegevens en hun relaties toegankelijk.


Platforms: iOS, Android

  • Start

Relaties binnen het groepsrooster zijn niet beschikbaar voor schermlezers

Ontwikkelaar

Het groepsrooster is visueel als een tabel opgebouwd. De namen van medewerkers vormen de rijen, de datums vormen de kolommen en de cellen bevatten de bijbehorende diensten of afwezigheden. Deze rij- en kolomrelaties zijn niet programmatisch beschikbaar. De schermlezer spreekt losse onderdelen uit, zoals initialen, namen, datums en dienstcodes, maar maakt niet duidelijk:

  • bij welke medewerker een dienst hoort;
  • op welke volledige datum de dienst plaatsvindt;
  • of er een opmerking bij de planning staat;
  • waar een nieuwe rij of medewerker begint. Gebruikers moeten hierdoor alle cellen achter elkaar doorlopen en kunnen niet gericht naar een medewerker, datum of volgende rij navigeren.

Mogelijke oplossing

Bied bij voorkeur een toegankelijke lijstweergave aan waarin de roosterinformatie per medewerker of per datum wordt gegroepeerd. Bijvoorbeeld:

  • ‘Emma Jansen, kop.’
  • ‘Woensdag 6 maart 2024: dienst MB, opmerking aanwezig.’
  • ‘Donderdag 7 maart 2024: dienst MB.’
  • ‘Vrijdag 8 maart 2024: dienst MB.’

Een schakelaar kan gebruikers laten kiezen tussen ‘Tabelweergave’ en ‘Lijstweergave’.


Platforms: iOS, Android

  • Groep

Schermtitels binnen het profiel zijn niet als kop gemarkeerd

Ontwikkelaar

Verschillende visuele schermtitels worden niet als kop door de schermlezer aangekondigd. Dit betreft onder andere:

  • de naam van de gebruiker op het accountoverzicht;
  • ‘Berichten’ boven het berichtenoverzicht. Hierdoor is de visuele schermstructuur niet programmatisch beschikbaar en kunnen gebruikers deze titels niet via de kopnavigatie bereiken.

Mogelijke oplossing

Maak iedere visuele schermtitel een afzonderlijk toegankelijk element met de eigenschap kop.


Platforms: iOS, Android

  • Profiel / Instellingen

1.3.2 Betekenisvolle volgorde (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 1.3.2(opens in a new tab)

Pauzeontheffing wordt vóór de bijbehorende planning uitgesproken

Ontwikkelaar

In de dagweergave van ‘Mijn rooster’ spreekt de schermlezer eerst ‘Pauzeontheffing: ja’ uit en daarna pas het planningblok waarop deze informatie betrekking heeft. Visueel staat de pauzeontheffing juist onder het planningblok. Door deze afwijkende leesvolgorde kan onduidelijk zijn bij welke planning de pauzeontheffing hoort.


Mogelijke oplossing

Laat de toegankelijkheidsvolgorde overeenkomen met de visuele en inhoudelijke volgorde.


Platforms: iOS, Android

  • Mijn rooster

1.3.3 Zintuiglijke eigenschappen (Level A)

Resultaat: ✓ Voldoende

1.3.4 Weergavestand (Level AA)

Resultaat: ✗ OnvoldoendeHow to Meet 1.3.4(opens in a new tab)

De app ondersteunt de liggende weergavestand niet

Ontwikkelaar

De app wordt uitsluitend in de staande weergavestand weergegeven. Wanneer het mobiele apparaat naar de liggende stand wordt gedraaid, draait de inhoud niet mee. Hierdoor kunnen gebruikers die hun apparaat vanwege een beperking in een vaste liggende positie gebruiken de app niet in de voor hen noodzakelijke stand bedienen.


Mogelijke oplossing

Ondersteun zowel de staande als de liggende weergavestand en laat de inhoud zich automatisch aan de beschikbare schermruimte aanpassen. Een vaste weergavestand is alleen toegestaan als deze essentieel is voor de betreffende functionaliteit. Voor een roosterapp lijkt een uitsluitend staande weergavestand niet essentieel. Test na aanpassing alle schermen en functies in beide standen op leesbaarheid, bediening en behoud van informatie.


Platforms: iOS, Android

1.3.5 Identificeer het doel van de input (Level AA)

Resultaat: ✓ Voldoende

1.4.1 Gebruik van kleur (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 1.4.1(opens in a new tab)

Actief menutabblad wordt alleen met kleur aangegeven

Design

In het onderste navigatiemenu wordt het actieve tabblad alleen met een afwijkende kleur weergegeven. Het actieve tabblad ‘Start’ is oranje, terwijl de overige tabbladen grijs zijn. Gebruikers die kleuren niet of minder goed kunnen onderscheiden, kunnen hierdoor mogelijk niet vaststellen welk tabblad actief is.


Mogelijke oplossing

Voeg naast kleur een tweede visuele aanduiding toe, bijvoorbeeld:

  • een lijn onder het actieve tabblad;
  • een duidelijk kader of een afwijkende achtergrond;
  • een zichtbaar selectiebolletje;
  • een combinatie van vetgedrukte tekst en een selectie-indicator. Kleur mag aanvullend worden gebruikt, maar niet als enige manier om de actieve status over te brengen.

Platforms: iOS, Android

  • Start

1.4.2 Geluidsbediening (Level A)

Resultaat: ✓ Voldoende

1.4.3 Contrast (minimum) (Level AA)

Resultaat: ✗ OnvoldoendeHow to Meet 1.4.3(opens in a new tab)

Waarschuwing ‘De dienst heeft nog geen tijden’ heeft onvoldoende contrast

Design

De waarschuwing ‘De dienst heeft nog geen tijden’ in de stap ‘Extra/minder gewerkte uren’ wordt met oranje tekst op een lichtgele achtergrond weergegeven. Het contrast is onvoldoende. De gemeten contrastwaarde is 2,7:1.


Mogelijke oplossing

Gebruik een donkerdere tekstkleur of pas de achtergrondkleur aan. Zorg voor een contrastverhouding van minimaal 4,5:1.


Platforms: iOS, Android

  • Mutatieverzoek

Actieve onderdelen in het navigatiemenu hebben onvoldoende contrast

Design

Het actieve onderdeel in het onderste navigatiemenu wordt met oranje tekst en een oranje pictogram op een witte achtergrond weergegeven. De gemeten contrastverhouding is 2,39:1.


Mogelijke oplossing

Gebruik voor de tekst en het pictogram van het actieve menuonderdeel een donkerdere kleur. Zorg dat de tekst minimaal 4,5:1 en het pictogram minimaal 3:1 contrasteert met de witte achtergrond.


Platforms: iOS, Android

  • Start

1.4.4 Herschalen van tekst (Level AA)

Resultaat: ✓ Voldoende

Laat de app de tekstgrootte van iOS volgen

Ontwikkelaar

De app biedt een eigen functie waarmee gebruikers de tekst kunnen vergroten. De app reageert echter niet op de tekstgrootte die de gebruiker in de toegankelijkheidsinstellingen van iOS heeft gekozen.

Dit levert geen afkeuring op onder WCAG 1.4.4, omdat de ingebouwde functie voldoende tekstvergroting mogelijk maakt zonder verlies van content of functionaliteit. Het volgen van de systeeminstelling zorgt wel voor een gebruiksvriendelijkere en consistentere ervaring. Gebruikers hoeven hun voorkeur dan niet opnieuw binnen de app in te stellen.


Mogelijke oplossing

Laat de app standaard de tekstgrootte van iOS volgen door Dynamic Type te ondersteunen. De ingebouwde instelling kan als aanvullende mogelijkheid behouden blijven.

Voeg eventueel een optie toe zoals ‘Systeeminstelling volgen’, zodat gebruikers kunnen kiezen tussen hun algemene iOS-voorkeur en een afzonderlijke tekstgrootte voor de app.


Platforms: iOS

1.4.5 Afbeeldingen van tekst (Level AA)

Resultaat: ✓ Voldoende

1.4.10 Reflow (Level AA)

Resultaat: ✓ Voldoende

1.4.11 Contrast van niet-tekstuele content (Level AA)

Resultaat: ✗ OnvoldoendeHow to Meet 1.4.11(opens in a new tab)

De voortgangsbalk heeft onvoldoende contrast

Design

De voortgang binnen de verschillende stappen van een verzoek wordt met een grafische voortgangsbalk weergegeven. In de donkere modus van de app is het contrast tussen het gevulde gedeelte en het resterende gedeelte van de balk lager dan 3:1. Ook is onvoldoende contrast aanwezig om het volledige spoor van de voortgangsbalk duidelijk van de achtergrond te onderscheiden.


Mogelijke oplossing

Gebruik kleuren waarmee de onderdelen van de voortgangsbalk minimaal 3:1 contrasteren met de aangrenzende kleuren. Zorg dat zowel het gevulde gedeelte als het resterende spoor voldoende herkenbaar zijn.

Een alternatief is om naast de voortgangsbalk een duidelijke tekstuele aanduiding te plaatsen, bijvoorbeeld ‘Stap 1 van 5’ of ‘20% voltooid’.


Platforms: Android, iOS

  • Mutatieverzoek
  • Rooster accorderen
  • Wens
  • Verlofaanvraag
  • Annuleringsverzoek
  • Ruilverzoek

Toetsenbordfocus is vaak onvoldoende zichtbaar

Ontwikkelaar

Op verschillende plaatsen in de app is bij bediening met een extern toetsenbord niet duidelijk welk element toetsenbordfocus heeft. Bij veel knoppen wordt de focus alleen aangegeven door een zeer minimaal kleurverschil.

Hierdoor kunnen toetsenbordgebruikers niet of onvoldoende bepalen welk element wordt geactiveerd wanneer zij op Enter of de spatiebalk drukken.


Mogelijke oplossing

Voorzie ieder element dat toetsenbordfocus kan ontvangen van een duidelijke, consistente focusindicator. Gebruik bijvoorbeeld een contrasterende rand of omlijning rond het volledige element. Zorg dat de focusindicator minimaal 3:1 contrast heeft met de direct aangrenzende kleuren. Als focus alleen door een verandering van de achtergrondkleur wordt aangegeven, moet het verschil tussen de gefocuste en niet-gefocuste toestand voldoende waarneembaar zijn. Loop de volledige app met een extern toetsenbord door en controleer de focusindicator bij ieder interactief element in zowel de lichte als donkere weergave.


Platforms: iOS, Android

1.4.12 Tekstafstand (Level AA)

Resultaat: — Niet van toepassing

1.4.13 Content bij hover of focus (Level AA)

Resultaat: ✓ Voldoende

2.1.1 Toetsenbord (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 2.1.1(opens in a new tab)

Bedienbare elementen buiten het zichtbare scherm zijn niet bereikbaar met het toetsenbord

Ontwikkelaar

Bij bediening van de app met een extern toetsenbord en Volledige toetsenbordtoegang kunnen alleen de interactieve elementen binnen het zichtbare scherm focus ontvangen. Wanneer met de Tab-toets verder wordt genavigeerd, springt de focus naar het vaste navigatiemenu onderaan of naar de accountknop bovenaan. Bedienbare elementen die buiten beeld staan worden overgeslagen. Deze worden pas bereikbaar nadat de gebruiker het scherm eerst handmatig heeft gescrold. Hierdoor kunnen toetsenbordgebruikers niet alle beschikbare functies in een doorlopende toetsenbordvolgorde bereiken.


Mogelijke oplossing

Neem alle interactieve elementen op in de toetsenbordvolgorde, ongeacht of ze op dat moment binnen het zichtbare gedeelte van het scherm staan. Wanneer een element buiten beeld toetsenbordfocus ontvangt, moet de app automatisch naar dit element scrollen en het zichtbaar in beeld brengen. Voorkom dat alleen de momenteel zichtbare elementen focusbaar worden gemaakt.

Doorloop alle scrollbare schermen met Tab en Shift + Tab en controleer dat:

  • alle bedienbare elementen bereikbaar zijn;
  • de focus niet voortijdig naar vaste navigatieonderdelen springt;
  • het scherm automatisch meescrolt met de toetsenbordfocus;
  • dezelfde onderdelen zowel vooruit als achteruit bereikbaar blijven.

Platforms: iOS, Android

  • Start

Zoekveld en roosterblokken op het groepsscherm zijn niet bereikbaar met het toetsenbord

Ontwikkelaar

Bij bediening met een extern toetsenbord op iOS zijn verschillende functies op het groepsscherm niet bereikbaar of bruikbaar. Na het openen van de groepsfilters kan het zoekveld niet met de Tab-toets worden bereikt. Hierdoor kan een toetsenbordgebruiker niet naar een specifieke groep zoeken.

Ook de individuele roosterblokken in het groepsrooster kunnen geen toetsenbordfocus ontvangen en niet met het toetsenbord worden geactiveerd. Hierdoor is het niet mogelijk om de beschikbare roosterinformatie en bijbehorende functies zonder aanraking te gebruiken.

Op Android zijn de filters evenmin volledig bereikbaar.


Mogelijke oplossing

Neem het zoekveld in het filterpaneel op in de toetsenbordvolgorde en zorg dat het volledig met het toetsenbord kan worden bediend. Verplaats de focus bij het openen van het paneel naar de titel of het eerste bedienbare element. Maak daarnaast alle interactieve roosterblokken toetsenbordfocusbaar en activeerbaar.


Platforms: iOS, Android

  • Groep

Infoknop op de pagina ‘Mijn rooster’ is niet bereikbaar met het toetsenbord

Ontwikkelaar

Bij bediening met een extern toetsenbord kan de infoknop op de pagina ‘Mijn rooster’ geen toetsenbordfocus ontvangen. Daardoor kan de uitleg over de pictogrammen bij diensten en afwezigheden niet met het toetsenbord worden geopend.


Mogelijke oplossing

Neem de infoknop op in de toetsenbordvolgorde.


Platforms: iOS, Android

  • Mijn rooster

Tijdinstellingen binnen een verlofaanvraag zijn niet bereikbaar met het toetsenbord

Ontwikkelaar

Binnen het proces ‘Verlofaanvraag’ op iOS kan bij ‘Diensturen van deze dag’ de start- of eindtijd worden aangepast. Na het activeren van een tijd opent een dialoogvenster, maar de bedieningselementen in dit venster kunnen met een extern toetsenbord niet worden bereikt. Hierdoor kan een toetsenbordgebruiker de start- of eindtijd niet zelfstandig aanpassen.

Op Android zijn de afzonderlijke knoppen wel bereikbaar, maar kunnen ze niet worden geactiveerd.


Mogelijke oplossing

Neem alle interactieve onderdelen van het dialoogvenster op in de toetsenbordvolgorde.


Platforms: iOS, Android

  • Verlofaanvraag

De lettergrootte kan niet met het toetsenbord worden aangepast

Ontwikkelaar

Binnen ‘App instellingen’ staat een schuifregelaar waarmee de lettergrootte van de app kan worden aangepast. Met een extern toetsenbord kan deze instelling niet worden bediend. Hierdoor kunnen gebruikers die geen aanraakbediening kunnen gebruiken de tekstgrootte niet via deze instelling wijzigen.


Mogelijke oplossing

Maak de schuifregelaar bereikbaar en bedienbaar met een extern toetsenbord.


Platforms: iOS

  • Profiel / Instellingen

Onderste navigatie is niet bereikbaar met een extern toetsenbord op Android

Ontwikkelaar

Op Android kan met een aangesloten extern toetsenbord geen focus worden geplaatst op het hoofdmenu onderaan het scherm. Hierdoor zijn de menuopties, zoals ‘Start’, ‘Mijn rooster’, ‘Regelen’, ‘Groep’ en ‘Meer’, niet via het toetsenbord te bedienen. Gebruikers die afhankelijk zijn van een extern toetsenbord kunnen daardoor niet zelfstandig tussen de hoofdonderdelen van de app navigeren.


Mogelijke oplossing

Zorg dat alle opties in de onderste hoofdnavigatie toetsenbordfocus kunnen ontvangen en met Enter of de spatiebalk kunnen worden geactiveerd.


Platforms: Android

  • Start

Instellingen zijn niet bereikbaar met een extern toetsenbord op Android

Ontwikkelaar

Op het profielscherm kunnen de beschikbare instellingen niet met een extern toetsenbord worden bereikt. Bij het navigeren springt de toetsenbordfocus direct naar de laatste knop ‘Uitloggen’ en worden alle tussenliggende opties overgeslagen.


Mogelijke oplossing

Zorg dat ieder interactief onderdeel op het profielscherm toetsenbordfocus kan ontvangen en met Enter of de spatiebalk kan worden geactiveerd.


Platforms: Android

  • Profiel / Instellingen

2.1.2 Geen toetsenbordval (Level A)

Resultaat: ✓ Voldoende

2.1.4 Enkel teken sneltoetsen (Level A)

Resultaat: ✓ Voldoende

2.2.1 Timing aanpasbaar (Level A)

Resultaat: ✓ Voldoende

2.2.2 Pauzeren, stoppen, verbergen (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 2.2.2(opens in a new tab)

Pulserende achtergrondanimatie op het vergrendelscherm kan niet worden gestopt

Ontwikkelaar

Achter het InPlanning-logo worden voortdurend pulserende ringen weergegeven. De animatie begint automatisch, duurt langer dan vijf seconden en wordt gelijktijdig met de bediening van het pincodescherm getoond. De gebruiker kan deze niet pauzeren, stoppen of verbergen. Ook wanneer de systeeminstelling ‘Verminder beweging’ is ingeschakeld, blijft de animatie actief. De voortdurende beweging kan gebruikers afleiden en het invoeren van de pincode bemoeilijken.


Mogelijke oplossing

Stop de animatie automatisch na maximaal vijf seconden of bied een mogelijkheid om deze te pauzeren, stoppen of verbergen. Laat de ringen bij voorkeur volledig stilstaan wanneer de systeeminstelling voor het verminderen van beweging is ingeschakeld. Omdat de animatie decoratief is, kan deze ook volledig worden verwijderd.


Platforms: iOS, Android

  • Vergrendelscherm

2.3.1 Drie flitsen of beneden drempelwaarde (Level A)

Resultaat: ✓ Voldoende

2.4.1 Blokken omzeilen (Level A)

Resultaat: — Niet van toepassing

2.4.2 Paginatitel (Level A)

Resultaat: — Niet van toepassing

2.4.3 Focus volgorde (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 2.4.3(opens in a new tab)

Focusvolgorde van het onderste navigatiemenu wijkt af van de visuele volgorde

Ontwikkelaar

Het onderste navigatiemenu wordt visueel van links naar rechts weergegeven als: Start → Mijn rooster → Regelen → Groep → Meer. De schermlezer plaatst de focus echter eerst op ‘Regelen’ en gaat daarna naar ‘Start’, ‘Mijn rooster’, ‘Groep’ en ‘Meer’. De focus springt hierdoor eerst naar het midden van het menu en vervolgens terug naar links. Deze afwijking kan verwarrend zijn voor gebruikers die de positie van de schermlezerfocus combineren met de visuele indeling van het scherm.


Mogelijke oplossing

Laat de schermlezerfocus de visuele en logische volgorde van het navigatiemenu volgen: Start → Mijn rooster → Regelen → Groep → Meer.


Platforms: iOS, Android

  • Start

Schermlezerfocus wordt niet naar het geopende actiepaneel verplaatst

Ontwikkelaar

Na het activeren van ‘Regelen’ wordt een actiepaneel geopend. De schermlezerfocus gaat echter eerst naar ‘Start’ in de achterliggende navigatie. Daarna wordt ‘Actiepaneel geopend’ aangekondigd, volgt een lege focuspositie en pas daarna komt de focus bij ‘Mutatieverzoek’. Hierdoor is niet direct duidelijk dat een nieuw paneel is geopend.


Mogelijke oplossing

Verplaats de focus na het openen direct naar een duidelijke titel van het actiepaneel of naar de eerste menuoptie. Maak de achterliggende interface tijdelijk niet bereikbaar voor schermlezers. Plaats de focus na het sluiten terug op ‘Regelen’ en verwijder lege focusposities.


Platforms: iOS, Android

  • Mutatieverzoek

VoiceOver-focus wordt naar onderdelen buiten het zichtbare groepsrooster verplaatst

Ontwikkelaar

Bij het navigeren door het groepsrooster komt de VoiceOver-focus terecht op datums en roosteronderdelen die buiten het zichtbare gedeelte van de horizontale tabel staan. VoiceOver spreekt bijvoorbeeld dagen en datums uit die helemaal links buiten beeld staan. Hierdoor is voor gebruikers niet duidelijk waar de focus zich bevindt en bij welk zichtbaar onderdeel de uitgesproken informatie hoort.


Mogelijke oplossing

Zorg dat het rooster automatisch naar een element scrollt zodra dit VoiceOver-focus ontvangt, zodat het gefocuste element ook zichtbaar is.

Neem niet-zichtbare roosteronderdelen alleen in de focusvolgorde op wanneer ze op een begrijpelijke manier kunnen worden bereikt. Bied daarnaast duidelijke bediening om naar een vorige of volgende periode te navigeren, in plaats van gebruikers door een onbegrensde horizontale reeks te laten swipen.


Platforms: iOS

  • Groep

Toetsenbordfocus komt op onzichtbare en niet-functionele tabbladen in het menu ‘Meer’

Ontwikkelaar

Na het openen van het menu ‘Meer’ zijn vijf elementen met het toetsenbord bereikbaar. Visueel en functioneel bestaan echter alleen de opties ‘Rapport’ en ‘Feedback’. De drie overige elementen zijn onzichtbaar en voeren bij activering geen actie uit. Hierdoor komt de toetsenbordfocus op betekenisloze focusstops terecht. Gebruikers kunnen niet bepalen waarop de focus staat en weten niet of activering iets zou moeten doen. Dit maakt de focusvolgorde onduidelijk en bemoeilijkt de bediening van het menu.


Mogelijke oplossing

Verwijder de drie niet-functionele elementen uit de toetsenbord- en toegankelijkheidsvolgorde. Alleen zichtbare en bruikbare bedieningselementen mogen focus ontvangen.


Platforms: iOS, Android

  • Meer

2.4.4 Linkdoel (in context) (Level A)

Resultaat: ✓ Voldoende

2.4.5 Meerdere manieren (Level AA)

Resultaat: — Niet van toepassing

2.4.6 Koppen en labels (Level AA)

Resultaat: ✓ Voldoende

2.4.7 Focus zichtbaar (Level AA)

Resultaat: ✗ OnvoldoendeHow to Meet 2.4.7(opens in a new tab)

Toetsenbordfocus is niet of onvoldoende zichtbaar

Ontwikkelaar

Op verschillende plaatsen in de app is bij bediening met een extern toetsenbord niet duidelijk welk element toetsenbordfocus heeft. Bij sommige knoppen wordt de focus alleen aangegeven door een zeer minimaal kleurverschil. Op andere onderdelen ontbreekt een zichtbare focusindicator volledig.

Hierdoor kunnen toetsenbordgebruikers niet of onvoldoende bepalen welk element wordt geactiveerd wanneer zij op Enter of de spatiebalk drukken.


Mogelijke oplossing

Voorzie ieder element dat toetsenbordfocus kan ontvangen van een duidelijke, consistente focusindicator. Gebruik bijvoorbeeld een contrasterende rand of omlijning rond het volledige element.

Zorg dat de focusindicator minimaal 3:1 contrast heeft met de direct aangrenzende kleuren. Als focus alleen door een verandering van de achtergrondkleur wordt aangegeven, moet het verschil tussen de gefocuste en niet-gefocuste toestand voldoende waarneembaar zijn.

Loop de volledige app (zowel iOS als Android) met een extern toetsenbord door en controleer de focusindicator bij ieder interactief element in zowel de lichte als donkere weergave.


Platforms: iOS, Android

2.4.11 Focus niet bedekt (minimum) (Level AA)

WCAG 2.2

Resultaat: ✓ Voldoende

2.5.1 Aanwijzergebaren (Level A)

Resultaat: ✓ Voldoende

2.5.2 Aanwijzerannulering (Level A)

Resultaat: ✓ Voldoende

2.5.3 Label in naam (Level A)

Resultaat: ✓ Voldoende

2.5.4 Bewegingsactivering (Level A)

Resultaat: ✓ Voldoende

2.5.7 Sleepbewegingen (Level AA)

WCAG 2.2

Resultaat: ✓ Voldoende

2.5.8 Grootte van het aanwijsgebied (minimum) (Level AA)

WCAG 2.2

Resultaat: ✓ Voldoende

3.1.1 Taal van de pagina (Level A)

Resultaat: ✓ Voldoende

3.1.2 Taal van onderdelen (Level AA)

Resultaat: ✓ Voldoende

3.2.1 Bij focus (Level A)

Resultaat: ✓ Voldoende

3.2.2 Bij input (Level A)

Resultaat: ✓ Voldoende

3.2.3 Consistente navigatie (Level AA)

Resultaat: — Niet van toepassing

3.2.4 Consistente identificatie (Level AA)

Resultaat: — Niet van toepassing

3.2.6 Consistente hulp (Level AA)

WCAG 2.2

Resultaat: ✓ Voldoende

3.3.1 Foutidentificatie (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 3.3.1(opens in a new tab)

Ontbrekende toelichting bij mutatieverzoek veroorzaakt geen duidelijke foutmelding

Ontwikkelaar

Wanneer het verplichte toelichtingsveld leeg is en de gebruiker de knop ‘Controleren’ activeert, wordt niet uitgelegd waarom de gebruiker niet verder kan. De knop kleurt slechts ongeveer een halve seconde rood. Er verschijnt geen blijvende tekstuele foutmelding en het toelichtingsveld wordt niet als foutief geïdentificeerd. Hierdoor is niet duidelijk welke invoer ontbreekt en hoe de gebruiker het probleem kan oplossen. De kortdurende kleurverandering is bovendien niet bruikbaar voor mensen die de kleur niet waarnemen of het scherm niet zien.


Mogelijke oplossing

Toon een duidelijke tekstuele foutmelding, bijvoorbeeld: ‘Vul een toelichting in om verder te gaan.’ Koppel deze melding programmatisch aan het toelichtingsveld, markeer het veld als ongeldig en verplaats de focus zo nodig naar het veld of naar een foutoverzicht. Laat de schermlezer de foutmelding direct aankondigen. Gebruik kleur alleen als aanvullende visuele indicatie.


Platforms: iOS, Android

  • Mutatieverzoek

3.3.2 Labels of instructies (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 3.3.2(opens in a new tab)

Instructie en invoerstatus voor de pincode ontbreken voor schermlezers

Ontwikkelaar

De schermlezer slaat de visuele pincode-indicator met de vijf bolletjes over. Na de knop ‘Pincode vergeten’ komt de gebruiker direct bij de cijfers van het aangepaste toetsenblok terecht. Er wordt niet uitgelegd dat een pincode moet worden ingevoerd, uit hoeveel cijfers deze bestaat en hoeveel cijfers al zijn ingevuld.

Daarnaast spreekt de schermlezer bij verschillende cijfertoetsen ook letters uit, zoals ‘2, ABC’ en ‘3, DEF’. Deze letters zijn niet relevant voor het invoeren van een pincode en zorgen voor onnodige informatie.


Mogelijke oplossing

Voeg vóór het toetsenblok een duidelijke, voor schermlezers beschikbare instructie toe, bijvoorbeeld: ‘Voer je pincode van vijf cijfers in.’

Maak ook de actuele invoerstatus toegankelijk en werk deze na ieder ingevoerd of verwijderd cijfer bij. De schermlezer kan bijvoorbeeld uitspreken:

  • ‘Pincode, 0 van 5 cijfers ingevuld.’
  • ‘Pincode, 2 van 5 cijfers ingevuld.’
  • ‘Pincode volledig ingevuld.’

Spreek de werkelijk ingevoerde cijfers vanwege de vertrouwelijkheid niet uit. Geef de cijfertoetsen alleen het betreffende cijfer als toegankelijke naam, bijvoorbeeld ‘2, knop’, en verberg letters zoals ‘ABC’ en ‘DEF’ voor schermlezers.


Platforms: iOS, Android

  • Vergrendelscherm

Niet aangegeven dat het toelichtingsveld bij mutatieverzoek verplicht is

Ontwikkelaar

In de laatste stap van het mutatieverzoek staat een veld voor een toelichting. Het invullen van dit veld is verplicht, maar dit wordt niet bij het veld of op een andere manier vooraf aangegeven. Gebruikers ontdekken daardoor pas wanneer zij verder willen gaan dat een toelichting vereist is.


Mogelijke oplossing

Geef zowel visueel als programmatisch aan dat het toelichtingsveld verplicht is. Plaats bijvoorbeeld de tekst ‘verplicht’ in het label en zorg dat hulptechnologie deze status kan bepalen. Schermlezers horen bijvoorbeeld uit te spreken: ‘Toelichting, verplicht, tekstveld.’


Platforms: iOS, Android

  • Mutatieverzoek

3.3.3 Foutsuggestie (Level AA)

Resultaat: ✓ Voldoende

3.3.4 Foutpreventie (wettelijk, financieel, gegevens) (Level AA)

Resultaat: ✓ Voldoende

3.3.7 Overbodige invoer (Level A)

WCAG 2.2

Resultaat: ✓ Voldoende

3.3.8 Toegankelijke authenticatie (minimum) (Level AA)

WCAG 2.2

Resultaat: ✓ Voldoende

4.1.2 Naam, rol, waarde (Level A)

Resultaat: ✗ OnvoldoendeHow to Meet 4.1.2(opens in a new tab)

Werkgeverkeuze wordt niet als bedienbaar element herkend door de schermlezer

Ontwikkelaar

Op het pincodescherm spreekt de schermlezer het label ‘Je werkgever’ en de naam van de geselecteerde werkgever uit. De schermlezer geeft echter niet aan dat de werkgeverkeuze bedienbaar is. Hierdoor is voor schermlezergebruikers niet duidelijk dat zij dit onderdeel kunnen activeren om een werkgever te kiezen of te wijzigen.


Mogelijke oplossing

Voorzie de werkgeverkeuze van een duidelijke toegankelijke naam en de juiste rol. De schermlezer zou bijvoorbeeld moeten uitspreken: ‘Geselecteerde werkgever, [naam werkgever], knop.’


Platforms: iOS, Android

  • Vergrendelscherm

Naam, rol en berichtstatus van de accountknop zijn niet duidelijk voor schermlezers

Ontwikkelaar

Wanneer de schermlezerfocus op de accountknop rechtsboven komt, worden alleen de initialen van de gebruiker en het getal in de notificatiebadge uitgesproken, bijvoorbeeld ‘DS 7’. De schermlezer maakt niet duidelijk:

  • dat het element een knop is;
  • dat de knop naar de accountinstellingen leidt;
  • dat het getal het aantal ongelezen berichten aangeeft. Hierdoor is voor schermlezergebruikers niet duidelijk wat het element doet en wat de weergegeven waarde betekent.

Mogelijke oplossing

Maak de avatar en de notificatiebadge samen één toegankelijk en activeerbaar element. Geef dit element de rol knop en een beschrijvende toegankelijke naam waarin ook de betekenis van de notificatiebadge staat. De schermlezer kan bijvoorbeeld uitspreken: ‘Accountinstellingen, 7 ongelezen berichten, knop.’

Als de identiteit van de gebruiker relevant is, kan dit bijvoorbeeld worden: ‘Accountinstellingen van [naam gebruiker], 7 ongelezen berichten, knop.’


Platforms: iOS, Android

  • Start

Klikbare roosterblokken worden niet als knop aangekondigd

Ontwikkelaar

Op de startpagina onder ‘Mijn rooster’ staan klikbare roosterblokken voor onder andere vandaag en morgen. De schermlezer spreekt de inhoud van deze blokken uit, maar geeft niet aan dat de blokken bedienbaar zijn. Hierdoor weten schermlezergebruikers niet dat zij een roosterblok kunnen activeren om meer informatie over het betreffende roosteronderdeel te openen.


Mogelijke oplossing

Maak ieder klikbaar roosterblok één toegankelijk en focusbaar element en geef het de rol knop. Neem de relevante inhoud, zoals de dag en het roosteronderdeel, op in de toegankelijke naam. De schermlezer kan bijvoorbeeld uitspreken: ‘Vandaag, Meteorologen, 1 MAS en MP, knop.’ Zorg dat onderliggende teksten en pictogrammen niet daarnaast als losse toegankelijkheidselementen worden aangeboden als deze samen één bedienbaar roosterblok vormen.


Platforms: iOS, Android

  • Start

Andere roosteronderdelen zijn alleen bereikbaar via ongelabelde carrouselknoppen

Ontwikkelaar

Op ‘Start’ is het onderdeel ‘Mijn rooster’ vormgegeven als een carrousel. Slechts het huidige roosterblok en een klein gedeelte van het volgende blok zijn met een schermlezer bereikbaar. De overige roosterblokken worden pas beschikbaar nadat de gebruiker via de paginabollen naar een andere dia navigeert. De paginabollen zijn bedienbaar, maar de schermlezer spreekt geen naam, rol of geselecteerde status uit. Hierdoor weet een gebruiker niet waarvoor deze elementen dienen, hoeveel dia’s beschikbaar zijn en welke dia momenteel wordt getoond. Het is daardoor niet duidelijk hoe de overige roosterinformatie kan worden bereikt.


Mogelijke oplossing

Gebruik bij voorkeur een ingebouwde toegankelijke paginabediening of geef iedere paginabol een duidelijke toegankelijke naam, rol en status. De schermlezer kan bijvoorbeeld uitspreken:

  • ‘Roosterpagina 1 van 3, geselecteerd, knop.’
  • ‘Toon roosterpagina 2 van 3, knop.’
  • ‘Toon roosterpagina 3 van 3, knop.’ Nog duidelijker is om de inhoud in de naam op te nemen, bijvoorbeeld: ‘Toon rooster voor morgen, pagina 2 van 3, knop.’ Maak na het activeren van een paginabol het nieuwe roosterblok bereikbaar en meld welke pagina is geopend. Overweeg daarnaast om de roosteronderdelen als een gewone lijst aan te bieden, zodat alle onderdelen direct achter elkaar met een schermlezer bereikbaar zijn.

Platforms: iOS, Android

  • Start

Klikbare onderdelen op de startpagina worden niet als bedienbaar aangekondigd

Ontwikkelaar

Meerdere onderdelen onder ‘Mijn verzoeken’ en ‘Mijn ongelezen berichten’ kunnen worden geactiveerd. De schermlezer spreekt de inhoud uit, maar kondigt niet aan dat deze onderdelen knoppen of links zijn. Hierdoor weten schermlezergebruikers niet dat zij deze onderdelen kunnen activeren om bijvoorbeeld een verzoek of bericht te openen.


Mogelijke oplossing

Geef ieder klikbaar onderdeel de juiste toegankelijke rol en een naam die het doel duidelijk maakt. De schermlezer kan bijvoorbeeld uitspreken:

  • ‘Mijn ontvangen verzoeken, knop.’
  • ‘Mijn verzonden verzoeken, knop.’
  • ‘Open bericht van planner of leidinggevende, knop.’

Platforms: iOS, Android

  • Start

Geselecteerde status van het actieve menutabblad ontbreekt voor schermlezers

Ontwikkelaar

De schermlezer spreekt de naam van het actieve tabblad uit, maar geeft niet aan dat dit tabblad momenteel is geselecteerd. Hierdoor kunnen schermlezergebruikers niet vaststellen op welk hoofdonderdeel van de app zij zich bevinden.


Mogelijke oplossing

Maak het onderste menu programmatisch herkenbaar als een tabbladnavigatie en geef het actieve tabblad de status geselecteerd. Werk deze status bij wanneer de gebruiker een ander tabblad opent. De schermlezer kan bijvoorbeeld uitspreken: ‘Start, geselecteerd, tabblad, 1 van 5.’


Platforms: iOS, Android

  • Start

Geselecteerde roosterweergave wordt niet door de schermlezer aangegeven

Ontwikkelaar

De knoppen ‘Dag’, ‘Week’ en ‘Maand’ worden door de schermlezer als knoppen aangekondigd. De schermlezer geeft echter niet aan welke weergave momenteel is geselecteerd. Hierdoor kunnen gebruikers niet vaststellen of zij zich in de dag-, week- of maandweergave bevinden.


Mogelijke oplossing

Bied de drie opties aan als één samenhangende keuzegroep en maak de geselecteerde status programmatisch beschikbaar. Werk deze status bij zodra een andere weergave wordt gekozen. De schermlezer kan bijvoorbeeld uitspreken: ‘Maand, geselecteerd, tabblad, 3 van 3.’


Platforms: iOS, Android

  • Mijn rooster

Navigatieknoppen noemen een onjuiste periode

Ontwikkelaar

De toegankelijke namen van de knoppen om naar een vorige of volgende periode te gaan, worden niet aangepast aan de actieve roosterweergave. In de maandweergave spreekt de schermlezer bijvoorbeeld ‘Ga naar volgende dag, knop’ uit, terwijl de knop naar de volgende maand gaat. Hierdoor krijgen gebruikers onjuiste informatie over het gevolg van het activeren van de knop.


Mogelijke oplossing

Pas de toegankelijke namen aan de actieve weergave aan:

  • Dagweergave: ‘Ga naar vorige dag’ en ‘Ga naar volgende dag’.
  • Weekweergave: ‘Ga naar vorige week’ en ‘Ga naar volgende week’.
  • Maandweergave: ‘Ga naar vorige maand’ en ‘Ga naar volgende maand’.

Platforms: iOS, Android

  • Mijn rooster

Bedienbare elementen in de acties vanuit ‘Regelen’ hebben onvolledige toegankelijkheidsinformatie

Ontwikkelaar

In de verschillende processen die vanuit ‘Regelen’ worden geopend, komen veel bedienbare elementen voor met een ontbrekende of onvolledige toegankelijke naam, rol en waarde. Dit is onder andere vastgesteld bij het mutatieverzoek, maar het probleem komt breder voor binnen de functionaliteiten van ‘Regelen’. Voorbeelden zijn:

  • menuopties die niet als knop worden aangekondigd;
  • pictogramknoppen zonder toegankelijke naam;
  • bedienbare datums waarvan de rol of beschikbaarheid ontbreekt;
  • keuzeopties waarvan de geselecteerde status niet wordt uitgesproken;
  • uitklapbare onderdelen waarbij niet wordt aangegeven of ze ingeklapt of uitgeklapt zijn;
  • invoer- en tijdsbedieningen waarbij het doel of de actuele waarde onduidelijk is;
  • knoppen voor bewerken en verwijderen zonder beschrijvende naam. Hierdoor is voor schermlezergebruikers niet altijd duidelijk welk element zij hebben geselecteerd, of het bedienbaar is, wat het doet en wat de actuele waarde of status is.

Mogelijke oplossing

Doorloop met een schermlezer alle processen die vanuit ‘Regelen’ kunnen worden gestart. Controleer daarbij ieder scherm en ieder interactief element. Denk aan mutatieverzoeken, rooster accorderen, wensen, verlofaanvragen, annuleringsverzoeken en ruilverzoeken.

Zorg dat ieder bedienbaar element beschikt over:

  • een duidelijke toegankelijke naam die het doel beschrijft;
  • de juiste rol, zoals knop, tekstveld, keuzelijst of schakelaar;
  • een begrijpelijke actuele waarde, zoals geselecteerd, niet beschikbaar, ingeschakeld, samengevouwen of uitgevouwen.

Werk waarden direct bij wanneer de gebruiker een keuze maakt of een onderdeel bedient. Test vervolgens ieder volledig proces opnieuw met een schermlezer, inclusief alle tussenstappen, keuzeschermen, foutmeldingen en bevestigingen.


Platforms: iOS, Android

  • Mutatieverzoek
  • Rooster accorderen
  • Wens
  • Verlofaanvraag
  • Annuleringsverzoek
  • Ruilverzoek

Voortgangsindicator geeft alleen een percentage zonder context

Ontwikkelaar

De voortgangsindicator onderaan de verschillende stappen kan schermlezerfocus ontvangen. De schermlezer spreekt echter alleen een waarde uit, zoals ‘20 procent’ of ‘40 procent’. Er wordt niet aangegeven dat het de voortgang van het mutatieverzoek betreft.


Mogelijke oplossing

Geef de voortgangsindicator een toegankelijke naam, rol en actuele waarde. Voeg bij voorkeur ook de huidige stap en het totale aantal stappen toe. De schermlezer kan bijvoorbeeld uitspreken: ‘Voortgang mutatieverzoek, stap 1 van 5, 20 procent.’


Platforms: Android, iOS

  • Mutatieverzoek
  • Rooster accorderen
  • Wens
  • Verlofaanvraag
  • Annuleringsverzoek
  • Ruilverzoek

Bedienbare elementen op het groepsscherm hebben onvolledige toegankelijkheidsinformatie

Ontwikkelaar

Op verschillende plaatsen binnen het groepsscherm hebben interactieve elementen een ontbrekende of onvolledige toegankelijke naam, rol, waarde of status. Dit is onder andere vastgesteld bij:

  • de filterknop, die alleen als ‘knop’ wordt aangekondigd;
  • de zoekfunctie in het geopende filterpaneel, die niet volledig bereikbaar of bedienbaar is met een schermlezer;
  • de opties ‘Medewerker’ en ‘Dienst’, waarbij niet wordt aangegeven dat dit tabbladen zijn;
  • het actieve tabblad, waarbij de geselecteerde status ontbreekt;
  • opmerkingenknoppen zonder duidelijke naam;
  • bedienbare roosteronderdelen waarvan het doel of de status niet duidelijk wordt uitgesproken.

Hierdoor weten schermlezergebruikers niet altijd welk onderdeel zij hebben geselecteerd, of het bedienbaar is, wat het doet en wat de actuele waarde of status is.


Mogelijke oplossing

Doorloop het volledige groepsscherm en alle bijbehorende filters en weergaven met een schermlezer. Controleer ieder interactief element en zorg dat dit beschikt over:

  • een duidelijke toegankelijke naam die het doel beschrijft;
  • de juiste rol, zoals knop, tabblad, zoekveld of keuzelijst;
  • een begrijpelijke actuele waarde, indien van toepassing;

Zorg dat alle onderdelen van geopende panelen bereikbaar zijn en werk waarden en statussen direct bij wanneer de gebruiker een keuze maakt. Test daarna het volledige groepsscherm opnieuw met een schermlezer.


Platforms: iOS, Android

  • Groep

Bedienbare elementen binnen het profiel hebben onvolledige toegankelijkheidsinformatie

Ontwikkelaar

Op verschillende schermen binnen de profielinstellingen hebben interactieve elementen een ontbrekende of onvolledige naam, rol, waarde of status. Dit is onder andere vastgesteld bij:

  • de knop ‘Berichten’, waarbij de rol ‘knop’ en de betekenis van het getal ontbreken;
  • de filterknop in het berichtenoverzicht, die alleen als ‘knop’ wordt aangekondigd;
  • navigatieopties zoals ‘App instellingen’, waarbij niet wordt aangegeven dat deze bedienbaar zijn;
  • schakelaars waarbij het zichtbare label en de schakelaar afzonderlijk worden aangeboden;
  • de opties ‘Licht’, ‘Donker’ en ‘Automatisch’, waarbij de geselecteerde status ontbreekt.

Mogelijke oplossing

Doorloop met een schermlezer alle schermen en processen vanuit het profiel, waaronder Berichten, Profielgegevens, App instellingen, Notificaties, iCal-koppeling en Werkgever. Zorg dat ieder interactief element beschikt over een duidelijke naam, de juiste rol en, waar van toepassing, een actuele waarde en status.


Platforms: Android, iOS

  • Profiel / Instellingen

Vervolgknop lijkt beschikbaar maar reageert niet bij een ongeldige datum

Ontwikkelaar

Bij het indienen van een mutatieverzoek, wanneer een niet-beschikbare datum is geselecteerd, wordt direct onder de agenda een melding getoond. De knop ‘Mutatiesoort kiezen’ blijft echter zichtbaar en wordt door de schermlezer als een beschikbare knop aangekondigd.

Bij activering gebeurt niets. Er wordt niet aangegeven dat de knop vanwege de gekozen datum niet beschikbaar is. Dit is ook voor gebruikers zonder hulptechnologie onduidelijk, omdat de knop actief lijkt maar niet reageert.


Mogelijke oplossing

Maak de werkelijke status van de knop zowel visueel als programmatisch duidelijk. Kies bijvoorbeeld een van deze oplossingen:

  • Schakel de knop uit zolang geen geldige datum is geselecteerd. De schermlezer hoort dan bijvoorbeeld ‘Mutatiesoort kiezen, niet beschikbaar, knop’ uit te spreken.
  • Voorkom dat een niet-beschikbare datum kan worden geselecteerd.
  • Laat de knop actief en geef bij activering opnieuw gerichte feedback, bijvoorbeeld door de focus naar de bestaande melding te verplaatsen.

Platforms: iOS, Android

  • Mutatieverzoek

Schermlezer vindt onzichtbare en niet-functionele tabbladen in het menu ‘Meer’

Ontwikkelaar

Wanneer het menu ‘Meer’ wordt geopend, vindt de schermlezer vijf tabbladen. Visueel en functioneel bevat het menu echter alleen de opties ‘Rapport’ en ‘Feedback’. De overige drie tabbladen zijn niet zichtbaar, hebben geen duidelijke naam en voeren bij activering geen actie uit.

Hierdoor worden gebruikers van schermlezers geconfronteerd met bedieningselementen die visueel niet bestaan en waarvan het doel niet kan worden bepaald. Ook ontstaat ten onrechte de indruk dat het menu vijf beschikbare opties bevat.


Mogelijke oplossing

Verwijder de drie niet-functionele tabbladen uit de toegankelijkheidsboom. Alleen zichtbare en daadwerkelijk bruikbare onderdelen mogen door schermlezers worden gevonden. Controleer na aanpassing dat de schermlezer alleen ‘Rapport’ en ‘Feedback’ aantreft en dat beide elementen een duidelijke naam, passende rol en werkende actie hebben.


Platforms: iOS, Android

4.1.3 Statusberichten (Level AA)

Resultaat: ✗ OnvoldoendeHow to Meet 4.1.3(opens in a new tab)

Bevestiging van een verstuurd mutatieverzoek wordt onderbroken

Ontwikkelaar

Na het versturen verschijnt het statusbericht dat het mutatieverzoek succesvol is verstuurd. VoiceOver begint dit bericht voor te lezen, maar de aankondiging wordt onderbroken doordat de focus automatisch naar de accountknop wordt verplaatst. Hierdoor hoort de gebruiker mogelijk niet of het verzoek succesvol is verzonden.


Mogelijke oplossing

Bied het volledige bevestigingsbericht programmatisch als statusbericht aan en voorkom dat een automatische focusverplaatsing de aankondiging onderbreekt. VoiceOver hoort eerst volledig uit te spreken: ‘Je mutatieverzoek is succesvol verstuurd.’ Laat de focus daarna op een logisch element terechtkomen, zoals de paginatitel en niet automatisch op de accountknop.


Platforms: iOS

  • Mutatieverzoek

Feedback auditor uitvoering

Schrijf algemene feedback over de audit (ondersteunt Markdown)