გადასვლა მთავარ შიგთავსზე
პოლიტიკა

ხელმისაწვდომობა

წასაკითხად ღირს ის განცხადება, რომელიც ასახელებს, რა არის არასწორი. ეს განცხადებაც ასეა — მასში ასევე ნათქვამია, რის შესაბამისად ვქმნით პროდუქტს და როგორ უნდა შეგვატყობინოთ, თუ რამე გამოგვრჩა.

  • სამიზნე: WCAG 2.2 AA
  • კონტრასტი იზომება და არა უბრალოდ ფასდება
  • ცნობილი ხარვეზები ჩამოთვლილია

პოზიცია

ამ ვებსაიტს WCAG 2.2-ის AA დონის შესაბამისად ვქმნით და ამას ვარაუდის ნაცვლად ვამოწმებთ: კონტრასტს ვზომავთ იმ ფერთან მიმართებით, რომელზეც თითოეული ელემენტი რეალურად არის გამოსახული, ხოლო შეუსაბამობა build-ს ბლოკავს. ეს არ არის მიზანი, რომელსაც ვაცხადებთ და წელიწადში ერთხელ ვუბრუნდებით — ის ყველა რელიზზე მოწმდება.

ეს სრული შესაბამისობის შესახებ განცხადება არ არის. ცნობილი ხარვეზები ქვემოთ არის ჩამოთვლილი და არა გამოტოვებული. თუ ამ საიტზე ან app-ში რაიმე თქვენთვის გამოუსადეგარია, მოგვწერეთ მისამართზე [email protected], მიუთითეთ თემად ხელმისაწვდომობა და გვიამბეთ, რა მოხდა — ამას დეფექტის შეტყობინებად განვიხილავთ და არა უკუკავშირად.

ძალაშია

რა არის ჩაშენებული

  • ყველა გვერდი JavaScript-ის გარეშე მუშაობს. ნაგულისხმევად არაფერი იმალება და შემდეგ სკრიპტით არ ჩნდება, ამიტომ გვერდი, რომელსაც სკრიპტი გაუფუჭდა, მკაცრი კონტენტის ბლოკერი აქვს ან მხოლოდ ტექსტის კლიენტით იხსნება, მაინც აჩვენებს საკუთარ შიგთავსს. ინტერაქტიული ელემენტები იმ გვერდების დამატებაა, რომლებიც ისედაც მუშაობს.
  • კონტრასტი რეალურად შეღებილ ფონთან მიმართებით იზომება: თითოეული ელემენტისთვის განისაზღვრება მის უკან მდებარე პირველი მთლიანად გაუმჭვირვალე წინაპარი, ნაცვლად იმისა, რომ კონტრასტი ნავარაუდევ ფერთან შედარებით შეფასდეს. ამ საიტზე ძირითადი ტექსტის კონტრასტი ერთ დროს 4.49:1 იყო — AA-ზე დაბალი, თუმცა შეხედვით სრულიად მისაღები — და ამის აღმოჩენა მხოლოდ გაზომვით გახდა შესაძლებელი.
  • გამოტოვების ბმული და ხილული ფოკუსი. ყველა გვერდი იხსნება კონტენტზე გადასასვლელი ბმულით, ხოლო ყველა ინტერაქტიულ ელემენტს აქვს ხილული ფოკუსის ინდიკატორი — კონტური მოწესრიგებულობის გამო არ მოგვიხსნია.
  • სემანტიკური სტრუქტურა. თითო გვერდზე ერთი h1, თანმიმდევრული სათაურები გამოტოვებული დონეების გარეშე, ნამდვილი სიები, ცხრილები სწორად მონიშნული სათაურის უჯრედებითა და წარწერებით და landmark-ები, რომლებშიც ეკრანის წამკითხველით ნავიგაცია შეიძლება.
  • მოძრაობა სისტემის პარამეტრს ემორჩილება. prefers-reduced-motion-ის ჩართვისას ყველა ანიმაცია ითიშება, ხოლო კონტენტი მაშინვე ჩანს და გამოჩენას არ ელოდება.
  • ტექსტის ზომა იცვლება. განლაგებები შედარებით ერთეულებსა და გადალაგებას იყენებს, ამიტომ ტექსტის გადიდებისას ან ვიწრო ფანჯარაში გვერდი არ იშლება და გვერდით არ იწევა.
  • შინაარსიანი ალტერნატიული ტექსტი და ბმულში მოთავსებულ სურათზე განზრახ ცარიელი alt, როცა ბმულს საკუთარი ტექსტი უკვე აქვს — ასეთ შემთხვევაში აღწერა ეკრანის წამკითხველს ერთსა და იმავეს ორჯერ გაამეორებინებდა.

ცნობილი ხარვეზები

ეს განყოფილება არის მიზეზი, რის გამოც ამ გვერდის გამოქვეყნებას აზრი აქვს. თითოეული პუნქტი რეალურია, მათ შესახებ ვიცით და არც ერთი მათგანი აქ გამოსწორებულად არ არის წარმოდგენილი.

საიტი ოცდაათ ენაზეა გამოქვეყნებული და ყველა მათგანში ეკრანის წამკითხველით არ შემოწმებულა. შემოწმება ინგლისურად ჩატარდა. დამხმარე ტექნოლოგიით არ გადამოწმებულა გამოთქმა და კითხვის თანმიმდევრობა მარჯვნიდან მარცხნივ წასაკითხ ენებში, ასევე იმ დამწერლობებში, რომლებსაც ჩვენი ეკრანზე გამოსატანი შრიფტები ვერ ფარავს და მათ ნაცვლად პლატფორმის შრიფტი გამოიყენება.

ჩვენი ორივე შრიფტი მხოლოდ ლათინურ დამწერლობას ფარავს. კირილიცა, დევანაგარი, ქართული, ტაი, არაბული, ებრაული, ბენგალური, ეთიოპიური და CJK პლატფორმის საკუთარ შრიფტებზე გადადის. ეს, როგორც წესი, კითხვის გასაადვილებლად კარგია, თუმცა ნიშნავს, რომ ის ტიპოგრაფიული დეტალები, რომლებსაც ინგლისურში ვაკონტროლებთ — სისქე, დაშორება, ზომა, რომელზეც პატარა ტექსტი უკვე ზედმეტად პატარა ხდება — ამ ლოკალებში ჩვენს კონტროლს აღარ ექვემდებარება.

ზოგი ინტერაქტიული ელემენტი ახალია და ნაკლებად არის შემოწმებული. შედარების მატრიცა და დახმარების ძიება ცხრილის სტრიქონებს ადგილზე ფილტრავს, რაც სწორი მიდგომაა, თუმცა ეკრანის წამკითხველისთვის შეცვლილი შედეგების რაოდენობის გამოცხადება განხორციელებულია და მომხმარებლებთან არ შემოწმებულა.

აპს იგივე მიზნები აქვს, თუმცა საიტზე იშვიათად მოწმდება. ის მხარს უჭერს პლატფორმის ტექსტის ზომის საკუთარ პარამეტრებსა და ეკრანის წამკითხველს, რომლებიც სამუშაოს უმეტეს ნაწილს ასრულებს, თუმცა ამჟამად თითოეულ რელიზზე ხელმისაწვდომობის ფორმალურ აუდიტს არ ვატარებთ.

არც საიტზე და არც აპზე ფორმალური, მესამე მხარის აუდიტი არ ჩატარებულა. ამას თქმა გვირჩევნია, ვიდრე ისეთი სერტიფიცირების არსებობის მინიშნება, რომელიც არ გვაქვს.

აპი და ერთი მნიშვნელოვანი რამ

Telvio app ეყრდნობა იმ ოპერაციული სისტემის ხელმისაწვდომობის ფუნქციებს, რომელზეც მუშაობს: VoiceOver-სა და Dynamic Type-ს iOS-ზე, TalkBack-სა და შრიფტის მასშტაბირებას Android-ზე. ეს ფუნქციები ფარავს აპისთვის მნიშვნელოვან საკითხთა უმეტესობას, რადგან მისი ინტერფეისი შედგება ციფერბლატისგან, ბალანსისა და ტარიფების სიისგან.

ერთი საპროექტო გადაწყვეტილება ხელმისაწვდომობის თვისებად უნდა აღვნიშნოთ და არა ფუნქციად. რადგან აპს ანგარიში არ სჭირდება, არ არსებობს რეგისტრაციის ფორმა, შესაყვანი პაროლი, ელფოსტის დადასტურების ეტაპი ან შეტყობინებიდან მოსაძიებელი კოდი — ინტერაქციის მთელი კლასი, რომელიც ყველაზე ხშირად უქმნის დაბრკოლებას დამხმარე ტექნოლოგიის მომხმარებლებს ან ნებისმიერ ადამიანს, ვისაც ფორმებთან მუშაობა უჭირს, უბრალოდ არ არსებობს. დააინსტალირე, აკრიფე ნომერი, ისაუბრე.

შესაბამისი შეზღუდვა იმავე გვერდზეა, სადაც ყველაფერი დანარჩენი: აპს საგანგებო სამსახურებთან დარეკვა არ შეუძლია, როგორც ეს აღწერილია გვერდზე საგანგებო ზარები. თუ ვინმე ამ აპს ნათესავისთვის აყენებს — რაც საკმაოდ გავრცელებული შემთხვევაა, განსაკუთრებით საზღვარგარეთ მყოფ ოჯახთან დამრეკავი ხანდაზმული ადამიანებისთვის — ეს არის ერთადერთი ყველაზე მნიშვნელოვანი რამ, რაც დაყენებისას უნდა აუხსნათ.

შეგვატყობინეთ ხარვეზის შესახებ

გამოგვიგზავნეთ ელფოსტა მისამართზე [email protected] თემით Accessibility. სასარგებლო დეტალებია: გვერდი ან ეკრანი, რის გაკეთებას ცდილობდით, რომელ დამხმარე ტექნოლოგიას იყენებდით და მისი ვერსია, და რა მოხდა ამის ნაცვლად. არც ერთი მათგანი სავალდებულო არ არის — წინადადება „ეკრანის წამკითხველით ტარიფების ცხრილს ვერ ვიყენებ“ სრულიად საკმარისი შეტყობინებაა და ასეთი შეტყობინება არაფრის არქონას გვირჩევნია.

ვცდილობთ, ხუთ სამუშაო დღეში გიპასუხოთ შეფასებით და, თუ დავეთანხმებით, რომ ხარვეზი არსებობს, მისი გამოსწორების დაახლოებით ვადით. ის პრობლემები, რომლებიც ადამიანს დავალების დასრულებას უშლის, სხვა სამუშაოებზე წინ სწორდება; ის პრობლემები კი, რომლებიც დავალებას ართულებს, გულწრფელად რიგში თავსდება და ბუნდოვანი დაპირებებით არ გპირდებით.

თუ ევროკავშირში იმყოფებით და ფიქრობთ, რომ ხელმისაწვდომობის ვალდებულება არ სრულდება, ამის შესახებ შესაბამის ეროვნულ აღმასრულებელ ორგანოსაც შეგიძლიათ შეატყობინოთ. ჩვენ გვირჩევნია, თავდაპირველად ჩვენ მოგვმართოთ და ნებისმიერ შემთხვევაში გიპასუხებთ.

როგორ ტარდება შემოწმებები სინამდვილეში

ორი რამ იმსახურებს აღწერას, რადგან სწორედ ისინი განასხვავებს განცხადებას პრაქტიკისგან.

კონტრასტი შეღებილ ფონზე მოწმდება და არა კოდის მიხედვით. stylesheet-იდან წაკითხული ფერის მნიშვნელობა გეუბნებათ, როგორი უნდა ყოფილიყო ელემენტი და არა ის, საბოლოოდ როგორ გამოიყურება — იქნება ეს ნახევრად გამჭვირვალე ელემენტი მუქ ზოლზე, თანამედროვე ფერის ფუნქცია, რომელიც regex-ს არ ესმის, თუ hero სურათზე განთავსებული ფიქსირებული header. შემოწმება თითოეული ელემენტის რეალურ ფონს ასახავს: პირველი მთლიანად გაუმჭვირვალე წინაპრის პოვნამდე ზემოთ მიუყვება სტრუქტურას, ფერს უშუალოდ ბრაუზერში განსაზღვრავს და შემდეგ შეფარდებას ითვლის. ამ შემოწმებამ აღმოაჩინა, რომ საიტის ძირითადი ტექსტის კონტრასტი 4.49:1 იყო — AA-ზე დაბალი, თუმცა ცალკე აღებულად სრულიად ნორმალურად გამოიყურებოდა.

გვერდი მოწმდება ისე, როგორც ის გამოჩნდება, და არა ისე, როგორც დაწერილია. ცალკე probe თითოეულ გვერდს ნამდვილ ბრაუზერში ხსნის და ამოწმებს, არის თუ არა viewport-ში რომელიმე ტექსტის opacity ნულის ტოლი, იწევა თუ არა დოკუმენტი გვერდით და ხომ არ არის რამე შეღებილი საკუთარი ფონის ფერით. ეს უკანასკნელი აბსურდულად ჟღერს, სანამ რეალურ საიტზე არ მოხვდება: ერთმა დაჯგუფებულმა CSS წესმა ერთხელ label-ს ფერი და ფონი ერთსა და იმავე მნიშვნელობაზე დააყენა, რის შედეგადაც მივიღეთ 1:1 კონტრასტი, რომელიც markup-ში, DOM-ში და source-ის screenshot-შიც კი უხილავია.

რისი გაკეთება გადავწყვიტეთ შეგნებულად

  • ნებართვის გარეშე მოძრაობა არ არის. scroll ანიმაციები script-იდან მხოლოდ მაშინ ირთვება, როცა ის ჯერ ამოწმებს, რომ მომხმარებელს მოძრაობა სურს. ამიტომ ჩართული შემცირებული მოძრაობის მქონე მკითხველი კონტენტს მაშინვე ხედავს და მის გამოჩენას არასდროს უყურებს.
  • JavaScript-ის მიღმა კონტენტი არ იმალება. არაფერია უხილავად შექმნილი. ეს ისეთივე ხელმისაწვდომობის გადაწყვეტილებაა, როგორც წარმადობის — გვერდი, რომელიც ხილული რომ გახდეს, სკრიპტზეა დამოკიდებული, ყველასთვის ვერ მუშაობს, ვისთანაც ეს სკრიპტი ვერ მუშაობს.
  • მონაცემებში აიკონების ნაცვლად სიტყვები. შედარების ცხრილებში წერია „დიახ“, „არცერთი“ და „მომრგვალებული ზემოთ“, ნიშნულებისა და ჯვრების ნაცვლად, რადგან გამოცხადებისას ნიშნული ორაზროვანია, დაკოპირებისას კი უხილავი.
  • ცარიელი alt, როცა აღწერა განმეორებითი იქნებოდა. ბმულში მოთავსებულ სურათს, რომელსაც საკუთარი ტექსტი უკვე აქვს, ეძლევა alt="", რათა ეკრანის წამკითხველმა დანიშნულება ერთხელ და არა ორჯერ გამოაცხადოს.
  • ფართო ცხრილები საკუთარ ბლოკში იწევა და გვერდს გვერდით არ უბიძგებს, ამიტომ ტელეფონზე აბზაცის წასაკითხად ჰორიზონტალურად გადახვევა არასდროს არის საჭირო.

შეჯამება

ჩვენ ვქმნით WCAG 2.2 AA-ის შესაბამისად და ამას ყოველ რელიზზე ვამოწმებთ; კონტრასტი იზომება რეალურად რენდერირებული ფონის მიმართ და არა ნავარაუდევი ფონის მიხედვით. ეს სრულ შესაბამისობაზე პრეტენზია არ არის.

ცნობილი ხარვეზები: ოცდაათი ენის მასშტაბით ეკრანის წამკითხველის ტესტირება მხოლოდ ინგლისურად ჩატარდა, ჩვენი შრიფტები მხოლოდ ლათინურ დამწერლობას ფარავს, ამიტომ სხვა დამწერლობებისთვის პლატფორმის შრიფტებზე ხდება გადართვა, უახლესი ინტერაქტიული ელემენტები ნაკლებად არის დატესტილი და მესამე მხარის აუდიტი არ ჩატარებულა.

გამოსაყენებლად უვარგისი ნებისმიერი რამ შეატყობინეთ [email protected]ს, თემაში მიუთითეთ Accessibility. ამას დეფექტის შესახებ შეტყობინებად განვიხილავთ, ხოლო მოქმედების შესრულებას ხელის შემშლელი საკითხები სხვა სამუშაოებზე ადრე სწორდება.

ხშირად დასმული კითხვები

ხელმისაწვდომობის რომელ სტანდარტს იცავს Telvio?

ვებსაიტისთვის სამიზნეა WCAG 2.2-ის AA დონე, რომელსაც ყოველი რელიზის დროს ვამოწმებთ და არა პერიოდულად. კონტრასტი იზომება იმ ფონის მიმართ, რომელზეც თითოეული ელემენტი რეალურად იხატება, ხოლო შეუსაბამობის აღმოჩენა build-ს ბლოკავს. სრულ შესაბამისობას არ ვაცხადებთ.

მუშაობს Telvio-ს ვებსაიტი JavaScript-ის გარეშე?

დიახ. ნაგულისხმევად არაფერია დამალული და შემდეგ სკრიპტით გამოვლენილი, ამიტომ JavaScript-ის გამორთვის ან დაბლოკვის შემთხვევაშიც ყველა გვერდი თავის კონტენტს აჩვენებს. ინტერაქტიული ფუნქციები, მაგალითად შედარების ფილტრები, იმ გვერდების დამატებითი შესაძლებლობებია, რომლებიც ისედაც მუშაობს.

ჩატარებია თუ არა Telvio-ს ხელმისაწვდომობის აუდიტი?

არც ვებსაიტზე და არც აპზე მესამე მხარის აუდიტი არ ჩატარებულა. საიტის ყოველი რელიზის დროს ავტომატური და ხელით შემოწმებები ტარდება, ხოლო ეს განცხადება ცნობილ ხარვეზებს ჩამოთვლის და არ გამოტოვებს მათ.

ხელმისაწვდომია Telvio-ს აპი ეკრანის წამკითხველით?

აპი იყენებს პლატფორმის საკუთარ ხელმისაწვდომობის ფუნქციებს — VoiceOver-სა და Dynamic Type-ს iOS-ზე, TalkBack-სა და შრიფტის მასშტაბირებას Android-ზე. მასზე აუდიტი ვებსაიტთან შედარებით უფრო იშვიათად ტარდება და თითოეული რელიზის წინააღმდეგ ფორმალური ხელმისაწვდომობის აუდიტი არ ხორციელდება.

როგორ შევატყობინო ხელმისაწვდომობის პრობლემა?

მოგვწერეთ [email protected]ზე და თემაში ჩაწერეთ Accessibility. მიუთითეთ, რომელ გვერდზე ან ეკრანზე იყავით, რის გაკეთებას ცდილობდით და რა მოხდა. დამხმარე ტექნოლოგიისა და მისი ვერსიის მითითება დაგვეხმარება, თუმცა სავალდებულო არ არის. ვცდილობთ, ხუთ სამუშაო დღეში გიპასუხოთ.

რატომ იყენებს საიტი ჩემს ენაზე სხვა შრიფტს?

ორი შრიფტი, რომლებითაც საიტი არის შექმნილი, მხოლოდ ლათინურ დამწერლობას მოიცავს. კირილიცა, დევანაგარი, ქართული, ტაილანდური, არაბული, ებრაული, ბენგალური, ეთიოპიური და CJK პლატფორმის საკუთარ შრიფტებზე გადადის. ეს, როგორც წესი, უკეთესია წაკითხვადობისთვის, თუმცა ნიშნავს, რომ ამ ლოკალებში ტიპოგრაფიულ დეტალებს ჩვენ ვერ ვაკონტროლებთ.

1 უფასო წუთიანგარიშისა და ბარათის გარეშედარეკეთ უფასოდ