Accessibility (a11y) — είναι η πρακτική δημιουργίας εφαρμογών που μπορούν να χρησιμοποιηθούν από άτομα με αναπηρίες. Σύμφωνα με τον Παγκόσμιο Οργανισμό Υγείας, πάνω από 1,3 δισεκατομμύρια άνθρωποι (16% του πληθυσμού) ζουν με κάποια μορφή αναπηρίας. ΠΟΥ (έκθεση 2024) τονίζει ότι η ψηφιακή προσβασιμότητα γίνεται κρίσιμα σημαντική. Ας δούμε πώς να εξασφαλίσουμε την προσβασιμότητα σε iOS και Android και ποια πρότυπα υπάρχουν.
Βασικά Σημεία
Accessibility (συντομογραφία a11y — γράμμα a + 11 γράμματα + y) — είναι η ιδιότητα ενός προϊόντος να μπορεί να χρησιμοποιηθεί από άτομα με αναπηρία. Στο πλαίσιο των εφαρμογών κινητών, αυτό σημαίνει: υποστήριξη αναγνωστών οθόνης (VoiceOver, TalkBack), κατάλληλο μέγεθος κειμένου, υψηλή αντίθεση, σωστή σειρά εστίασης για πλοήγηση με πληκτρολόγιο και απουσία κινούμενων στοιχείων που προκαλούν ζάλη.
Η συμπερίληψη δεν είναι μόνο ηθική αλλά και νομική υποχρέωση. Πολλές χώρες έχουν νόμους ψηφιακής προσβασιμότητας: ADA (ΗΠΑ), Τμήμα 508, European Accessibility Act (ΕΕ, υποχρεωτικό για εφαρμογές από το 2025). Σύμφωνα με το Business Disability Forum, οι εταιρείες που επενδύουν στην προσβασιμότητα αυξάνουν το κοινό τους κατά 15–20% και μειώνουν τους νομικούς κινδύνους.
Στην IT Sectr, ελέγχουμε την προσβασιμότητα σε κάθε στάδιο ανάπτυξης. Η εμπειρία μας δείχνει: η διόρθωση προβλημάτων προσβασιμότητας στο στάδιο σχεδιασμού κοστίζει 10 φορές λιγότερο από ό,τι μετά την κυκλοφορία. Η προσβασιμότητα δεν είναι λειτουργία, αλλά βασική απαίτηση για μια σύγχρονη εφαρμογή.
Το οικοσύστημα της Apple προσφέρει ισχυρά εργαλεία προσβασιμότητας. VoiceOver είναι ένας ενσωματωμένος αναγνώστης οθόνης που εκφωνεί όλα όσα συμβαίνουν στην οθόνη. Ο χρήστης ελέγχει τη συσκευή με χειρονομίες: σύρσιμο δεξιά — επόμενο στοιχείο, σύρσιμο αριστερά — προηγούμενο στοιχείο, διπλό πάτημα — ενεργοποίηση.
Accessibility Label είναι το κείμενο που διαβάζει το VoiceOver για ένα στοιχείο. Από προεπιλογή, το iOS χρησιμοποιεί το κείμενο κουμπιού ή την ετικέτα, αλλά για εικονίδια και γραφικά στοιχεία πρέπει να ορίσετε ρητά την ετικέτα. Accessibility Trait — μια ιδιότητα που περιγράφει τον τύπο στοιχείου: button (κουμπί), header (κεφαλίδα), link (σύνδεσμος), image (εικόνα). Τα σωστά traits βοηθούν τον χρήστη να κατανοήσει πώς να αλληλεπιδράσει με ένα στοιχείο.
VoiceOver υποστηρίζει πάνω από 40 γλώσσες και λειτουργεί σε όλες τις συσκευές Apple. Για τον προγραμματιστή, το κύριο μέλημα είναι να ορίσει σωστά accessibilityLabel και accessibilityTraits για κάθε στοιχείο διεπαφής. Εάν ένα στοιχείο δεν πρέπει να είναι προσβάσιμο (διακοσμητική εικόνα), ορίστε isAccessibilityElement = false.
// Swift — ρύθμιση προσβασιμότητας για ένα κουμπί
let shareButton = UIButton()
shareButton.setImage(UIImage(named: "share-icon"), for: .normal)
shareButton.accessibilityLabel = "Κοινοποίηση αυτού του άρθρου"
shareButton.accessibilityHint = "Ανοίγει ένα παράθυρο διαλόγου για επιλογή τρόπου αποστολής"
shareButton.accessibilityTraits = .button
// SwiftUI — ακόμα πιο απλό
struct ShareButtonView: View {
var body: some View {
Button(action: share) {
Image(systemName: "square.and.arrow.up")
}
.accessibilityLabel("Κοινοποίηση")
.accessibilityHint("Ανοίγει το μενού κοινοποίησης")
}
}
Ο κώδικας δείχνει τη ρύθμιση προσβασιμότητας για ένα κουμπί χωρίς κείμενο (μόνο εικονίδιο). AccessibilityLabel είναι αυτό που θα ακούσει ο χρήστης. AccessibilityHint — μια πρόσθετη υπόδειξη για το αποτέλεσμα της ενέργειας. Μην χρησιμοποιείτε φράσεις όπως «κουμπί για» στην ετικέτα — το Trait ήδη δηλώνει ότι είναι κουμπί.
TalkBack είναι ο αναγνώστης οθόνης της Google για Android, μέρος του πακέτου Android Accessibility Suite. Όπως το VoiceOver, εκφωνεί στοιχεία διεπαφής και ελέγχεται με χειρονομίες. Το TalkBack υποστηρίζει πάνω από 100 γλώσσες και λειτουργεί σε όλες τις συσκευές με Google Play Services.
Content Description — το ισοδύναμο του accessibilityLabel στο Android. Ορίζεται μέσω του χαρακτηριστικού android:contentDescription σε XML ή μέσω της μεθόδου setContentDescription() σε κώδικα. Για μη εστιάσιμα στοιχεία (διακοσμητικό ImageView), χρησιμοποιήστε importantForAccessibility="no".
Focus Order (σειρά εστίασης) — η ακολουθία με την οποία το TalkBack μετακινείται μεταξύ στοιχείων κατά το σύρσιμο. Από προεπιλογή, το Android χρησιμοποιεί τη σειρά των στοιχείων στη διάταξη, αλλά μπορεί να αλλάξει μέσω των χαρακτηριστικών accessibilityTraversalBefore και accessibilityTraversalAfter. Αυτό είναι σημαντικό για πολύπλοκες οθόνες με προσαρμοσμένα στοιχεία.
Στην IT Sectr, ελέγχουμε το Focus Order σε κάθε οθόνη. Τα σφάλματα σειράς εστίασης είναι από τα πιο κοινά προβλήματα προσβασιμότητας. Για παράδειγμα, αν μετά από μια κεφαλίδα ο χρήστης πάει στα σχόλια αντί για το κείμενο του άρθρου — αυτό είναι ένα σφάλμα προσβασιμότητας.
WCAG (Web Content Accessibility Guidelines) — διεθνές πρότυπο προσβασιμότητας που αναπτύχθηκε από το W3C. Η τρέχουσα έκδοση είναι WCAG 2.2 (2023). Το πρότυπο χωρίζεται σε 4 αρχές: Perceivable (αντιληπτό), Operable (λειτουργικό), Understandable (κατανοητό), Robust (ανθεκτικό) — συντομογραφία POUR.
Επίπεδα WCAG: A (ελάχιστο), AA (μεσαίο, νομικά υποχρεωτικό στην ΕΕ), AAA (μέγιστο). Για εφαρμογές κινητών, το επίπεδο AA είναι αρκετό: αντίθεση κειμένου τουλάχιστον 4.5:1, υποστήριξη αναγνωστών οθόνης, ελάχιστο μέγεθος στόχου 44x44 pixel, υπότιτλοι για βίντεο.
Επίπεδο A — βασικές απαιτήσεις: εναλλακτικό κείμενο για εικόνες, έλεγχος με πληκτρολόγιο, αντίθεση τουλάχιστον 3:1. Επίπεδο AA — μεσαίο: αντίθεση 4.5:1, υποστήριξη κλίμακας έως 200%, σωστές κεφαλίδες και ετικέτες. Επίπεδο AAA — υψηλό: αντίθεση 7:1, νοηματική γλώσσα για βίντεο, πλήρης φωνητικός έλεγχος. Στην πράξη, οι περισσότερες εταιρείες στοχεύουν στο AA.
| Παράμετρος | iOS | Android |
|---|---|---|
| Αναγνώστης οθόνης | VoiceOver | TalkBack |
| Ετικέτα στοιχείου | accessibilityLabel | android:contentDescription |
| Τύπος στοιχείου | accessibilityTraits | accessibilityRole (Compose), σημασία εστίασης |
| Σειρά εστίασης | Αυτόματη (μπορεί να αλλάξει) | accessibilityTraversalBefore/After |
| Κλίμακα κειμένου | Dynamic Type (UIFontMetrics) | sp (scale-independent pixels) |
| Μείωση κίνησης | UIAccessibility.isReduceMotionEnabled | Settings.Global.getFloat(... ANIMATOR_DURATION_SCALE) |
Πίνακας 2. Σύγκριση API προσβασιμότητας iOS και Android. Παρά τα διαφορετικά ονόματα, οι έννοιες είναι ίδιες: ετικέτα, τύπος, σειρά εστίασης και υποστήριξη προσαρμογής κειμένου.
Οι δοκιμές προσβασιμότητας είναι ο έλεγχος μιας εφαρμογής για συμμόρφωση με τα πρότυπα WCAG και σωστή λειτουργία με αναγνώστες οθόνης. Το ελάχιστο σύνολο δοκιμών: ενεργοποιήστε το VoiceOver/TalkBack και πλοηγηθείτε σε όλες τις οθόνες της εφαρμογής. Ακούστε για να ελέγξετε ότι όλα τα στοιχεία εκφωνούνται, η σειρά εστίασης είναι λογική και τα ακατάλληλα στοιχεία (διακοσμητικά) αγνοούνται.
Αυτοματοποιημένα εργαλεία: Xcode Accessibility Inspector (έλεγχος στο Xcode για iOS), Android Accessibility Scanner (σαρώνει την οθόνη και βρίσκει προβλήματα), Axe DevTools, WAVE. Αυτά τα εργαλεία ελέγχουν την αντίθεση, το μέγεθος στόχου, την ύπαρξη ετικετών και άλλες παραμέτρους.
Στην IT Sectr, διεξάγουμε ανασκόπηση προσβασιμότητας πριν από κάθε κυκλοφορία. Η διαδικασία περιλαμβάνει: αυτοματοποιημένο έλεγχο (Accessibility Inspector), χειροκίνητες δοκιμές με VoiceOver και TalkBack, έλεγχο αντίθεσης και κλίμακας κειμένου. Καταγράφουμε προβλήματα στο Jira και τα αναθέτουμε σε sprint. Αυτό μας επιτρέπει να διατηρούμε το επίπεδο AA WCAG σε όλα τα έργα.
Συχνές Ερωτήσεις
Ρυθμίσεις → Προσβασιμότητα → VoiceOver. Ή πατήστε τρεις φορές το πλευρικό κουμπί (ή το κουμπί Home) με ενεργοποιημένη τη συντόμευση προσβασιμότητας. Γρήγορη ενεργοποίηση με Siri: «Ενεργοποίησε το VoiceOver». Στο Android, το TalkBack ενεργοποιείται στις Ρυθμίσεις → Προσβασιμότητα → TalkBack.
Για συμμόρφωση με τη νομοθεσία της ΕΕ (European Accessibility Act από 2025) και των ΗΠΑ (ADA), απαιτείται επίπεδο AA. Αυτό σημαίνει: αντίθεση 4.5:1, όλα τα στοιχεία έχουν ετικέτες, μέγεθος στόχου τουλάχιστον 44x44 pixel, υποστήριξη αναγνωστών οθόνης, υπότιτλοι για βίντεο.
Ναι. Η προσβασιμότητα βοηθά όλους: ηλικιωμένους, χρήστες σε μια ηλιόλουστη μέρα, γονείς που κρατούν ένα μωρό (με το ένα χέρι). Επιπλέον, είναι νομική απαίτηση σε πολλές χώρες. Η συμπερίληψη διευρύνει το κοινό και βελτιώνει την εμπειρία χρήστη για όλους.
Χρησιμοποιήστε αυτά τα εργαλεία: WebAIM Contrast Checker (online), Stark για Figma/Sketch. Για WCAG AA, η ελάχιστη αναλογία είναι 4.5:1 για κανονικό κείμενο και 3:1 για μεγάλο κείμενο (18px και άνω). Για AAA — 7:1 και 4.5:1 αντίστοιχα.
Περίληψη
Θα αναπτύξουμε μια εφαρμογή για κινητά έτοιμη για χρήση
Η IT Sectr δημιουργεί εφαρμογές iOS και Android για νεοφυείς επιχειρήσεις και επιχειρήσεις από το 2017. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.