டைனமிக் UI கூறுகளுக்கான வாய்ஸ்ஓவர் அணுகலை மேம்படுத்துகிறது
உள்ளடக்கிய iOS பயன்பாட்டை உருவாக்கும் போது, டெவலப்பர்கள் அடிக்கடி VoiceOver செயல்பாட்டின் மூலம் தனித்துவமான சவால்களை எதிர்கொள்கின்றனர். UIView இன் அணுகல்தன்மை உரையானது ஃபோகஸ் இயக்கத்தின் திசையின் அடிப்படையில் மாறும் வகையில் மாற்றியமைக்க முடியுமா என்பது பொதுவான கேள்வியாகும். 🧭
மேல் லேபிள், கலங்களின் கட்டமாகச் செயல்படும் சேகரிப்புக் காட்சி மற்றும் கீழ் லேபிள் ஆகியவற்றைக் கொண்ட தளவமைப்பைக் கற்பனை செய்து பாருங்கள். சேகரிப்பு காட்சியில் உள்ள ஒவ்வொரு கலமும் தனித்தனியாக அணுகக்கூடியது, ஸ்கிரீன் ரீடர் பயனர்களுக்கு நெறிப்படுத்தப்பட்ட அனுபவத்தை வழங்குகிறது. ஆனால் சில நேரங்களில், இயல்புநிலை அணுகல்தன்மை பயனரின் தேவைகளை முழுமையாக பூர்த்தி செய்யாது.
உதாரணமாக, ஒரு பயனர் டாப் லேபிள் இலிருந்து சேகரிப்பு பார்வையில் முதல் கலத்திற்கு செல்லும்போது, "n வரிசைகள் மற்றும் நெடுவரிசைகள் கொண்ட அட்டவணை" போன்ற கூடுதல் சூழலை வழங்குவது பயனுள்ளதாக இருக்கும். இது தெளிவு மற்றும் பயன்பாட்டினை மேம்படுத்துகிறது, குறிப்பாக கட்டங்கள் அல்லது சிக்கலான தரவு கட்டமைப்புகளுக்கு.
மறுபுறம், தலைகீழாகச் செல்லும்போது, கீழே லேபிளில் இருந்து கடைசி செல் வரை, உரையைத் தனிப்பயனாக்குவது தொடர்புகளை மிகவும் உள்ளுணர்வு மற்றும் தடையற்றதாக உணர வைக்கும். நிஜ உலக உதாரணங்களைப் பயன்படுத்தி ஸ்விஃப்டில் இந்த டைனமிக் அட்ஜஸ்ட்மென்ட்டை எப்படி அடையலாம் என்று பார்ப்போம். 🚀
கட்டளை | பயன்பாட்டின் உதாரணம் |
---|---|
UIAccessibility.elementFocusedNotification | VoiceOver ஃபோகஸ் புதிய உறுப்பாக மாறும்போதெல்லாம் இந்த அறிவிப்பு தூண்டப்படும். ஃபோகஸ் திசைக்கு பதிலளிக்கும் வகையில் அணுகல்தன்மை லேபிள்களை மாறும் வகையில் புதுப்பிப்பதற்கு இது அவசியம். |
UIAccessibility.focusedElementUserInfoKey | அறிவிப்பின் பயனர் தகவல் அகராதியிலிருந்து தற்போது கவனம் செலுத்திய உறுப்பைப் பிரித்தெடுக்கப் பயன்படுகிறது, இது குறிப்பிட்ட UIView ஐ அடையாளம் காண அனுமதிக்கிறது. |
didUpdateFocusIn | UICollectionViewDelegate இல் ஒரு பிரதிநிதி முறை, சேகரிப்பு பார்வையில் கவனம் மாறும் போதெல்லாம் அழைக்கப்படுகிறது. ஃபோகஸ் திசையின் அடிப்படையில் லேபிள்களைப் புதுப்பித்தல் போன்ற டைனமிக் நடத்தைகளைச் செயல்படுத்த இது பயனுள்ளதாக இருக்கும். |
UIFocusAnimationCoordinator | இந்த ஆப்ஜெக்ட் கவனம் மாறும்போது மென்மையான அனிமேஷன்களை அனுமதிக்கிறது, அணுகல்தன்மை கூறுகள் மாறும் வகையில் புதுப்பிக்கப்படும்போது பயனர் அனுபவத்தை மேம்படுத்துகிறது. |
customAccessibilityLabel | ஃபோகஸ் திசையின் அடிப்படையில் டைனமிக் அணுகல்தன்மை லேபிள்களைச் சேமித்து நிர்வகிக்க UICollectionViewCell துணைப்பிரிவில் தனிப்பயன் சொத்து சேர்க்கப்பட்டது. |
context.nextFocusedView | கவனத்தைப் பெறவிருக்கும் UIView ஐ வழங்குகிறது, அந்த உறுப்புக்கான சரியான அணுகல்தன்மை லேபிளைத் தீர்மானிப்பதற்கும் பயன்படுத்துவதற்கும் முக்கியமானது. |
context.previouslyFocusedView | கவனத்தை மாற்றும் போது கூடுதல் சூழலைச் சேர்ப்பது போன்ற சூழல்-விழிப்புணர்வு முடிவுகளை அனுமதிக்கும், முன்பு கவனம் செலுத்திய UIView ஐ அடையாளம் காட்டுகிறது. |
NotificationCenter.default.addObserver | VoiceOver ஃபோகஸ் மாற்றங்கள், அந்த அறிவிப்புகளைப் பெறும்போது தனிப்பயன் நடத்தையை இயக்குதல் போன்ற குறிப்பிட்ட அறிவிப்புகளைக் கேட்க ஒரு பார்வையாளரைப் பதிவுசெய்கிறது. |
selector | அறிவிப்பைப் பெறும்போது செயல்படுத்தும் முறையைக் குறிப்பிடுகிறது. எடுத்துக்காட்டாக, இது UIAccessibility.elementFocusedNotification ஐ வடிவமைக்கப்பட்ட முறையில் கையாள அனுமதிக்கிறது. |
accessibilityLabel | ஒரு உறுப்பை விவரிக்கும் உரையை வழங்கும் UIA அணுகல்தன்மையின் பண்பு. கூடுதல் சூழலை மாறும் வகையில் சேர்க்க, எடுத்துக்காட்டில் இந்த சொத்து மேலெழுதப்பட்டுள்ளது. |
டைனமிக் ஃபோகஸுடன் அணுகல்தன்மை லேபிள்களை மேம்படுத்துதல்
முதல் ஸ்கிரிப்ட் எடுத்துக்காட்டில், உறுப்புகளுக்கு இடையே VoiceOver ஃபோகஸ் நகரும்போது கண்காணிக்க, UICollectionViewDelegate நெறிமுறையிலிருந்து `didUpdateFocusIn` முறையைப் பயன்படுத்துகிறோம். இந்த முறை டெவலப்பர்கள் முன்பு கவனம் செலுத்திய பார்வை மற்றும் அடுத்தது இரண்டையும் கண்டறிய அனுமதிக்கிறது, இது சூழல்-விழிப்புணர்வு மாற்றங்களுக்கு ஏற்றதாக அமைகிறது. அடுத்த ஃபோகஸ் செய்யப்பட்ட காட்சி UICollectionViewCell என்பதைச் சரிபார்ப்பதன் மூலம், ஸ்கிரிப்ட் மாறும் வகையில் அணுகல்லேபிள் பண்புகளை தொடர்புடைய சூழலுடன் புதுப்பிக்கிறது. உதாரணமாக, மேல் லேபிளில் இருந்து சேகரிப்பு கலத்திற்கு கவனத்தை நகர்த்தும்போது, "" போன்ற தகவல்களைச் சேர்க்கிறோம்n வரிசைகள் மற்றும் நெடுவரிசைகள் கொண்ட அட்டவணை," உதவி தொழில்நுட்பங்களை நம்பியிருக்கும் பயனர்களுக்கு கூடுதல் தெளிவை வழங்குகிறது. 🧑💻
இரண்டாவது ஸ்கிரிப்ட், அறிவிப்பு மையம் ஐப் பயன்படுத்தி, `UIAccessibility.elementFocusedNotification` ஐக் கேட்கும் ஒரு பரந்த அணுகுமுறையை எடுக்கிறது. இந்த அறிவிப்பு ஆப்ஸ் முழுவதும் வாய்ஸ்ஓவர் ஃபோகஸில் மாற்றங்களை ஒளிபரப்புகிறது. இந்த அறிவிப்பைக் கையாள்வதன் மூலம், எந்த உறுப்பு கவனம் செலுத்துகிறது என்பதை ஸ்கிரிப்ட் மாறும் வகையில் தீர்மானித்து, அதற்கேற்ப அதன் அணுகல் லேபிளை புதுப்பிக்கிறது. சிக்கலான UI இல் உள்ள பல கூறுகளுக்கு ஒரே மாதிரியான ஃபோகஸ்-அவேர் புதுப்பிப்புகள் தேவைப்படும்போது இந்த அணுகுமுறை மிகவும் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டாக, ஊடாடும் கார்டுகளின் கட்டத்தை கற்பனை செய்து பாருங்கள், அங்கு ஒவ்வொரு அட்டையும் கவனம் செலுத்தும் திசையின் அடிப்படையில் அதன் விளக்கத்தை மாற்றுகிறது - இது அறிவிப்புகளைப் பயன்படுத்தி திறமையாக கையாளப்படுகிறது.
இரண்டு அணுகுமுறைகளும் மட்டு மற்றும் மீண்டும் பயன்படுத்தக்கூடியவை. முதல் ஸ்கிரிப்ட் UICollectionView உடன் இறுக்கமாக ஒருங்கிணைக்கப்பட்டுள்ளது, இது சேகரிப்பு காட்சிகளின் அடிப்படையில் UI களுக்கு சிறந்த தீர்வாக அமைகிறது. மறுபுறம், அறிவிப்பு அடிப்படையிலான ஸ்கிரிப்ட் மிகவும் நெகிழ்வானது மற்றும் லேபிள்கள் மற்றும் பொத்தான்களுடன் இணைந்த கட்டங்கள் போன்ற பல்வேறு தளவமைப்புகளில் நன்றாக வேலை செய்கிறது. `CustomAccessibilityLabel` போன்ற தனிப்பயன் பண்புகள் பயன்படுத்துவது, அணுகல்தன்மை உரைக்கான புதுப்பிப்புகள் UI உறுப்புகளின் அடிப்படை செயல்பாட்டில் குறுக்கிடாமல் இருப்பதை உறுதி செய்கிறது. எடுத்துக்காட்டாக, பயணப் பயன்பாட்டில், இலக்கு அட்டைக்கு கவனம் செலுத்தப்படும் போது, கார்டின் விவரங்கள், அது பிரத்யேகப் பட்டியலின் ஒரு பகுதியாக உள்ளதா அல்லது பரிந்துரைகளின் பகுதியாக இருந்தாலும், பயனர் அனுபவத்தை மேம்படுத்தும். ✈️
இந்தச் செயலாக்கங்களுக்கான திறவுகோல் அணுகல்லேபிள் சுருக்கமாகவும் விளக்கமாகவும் இருப்பதை உறுதிசெய்வதாகும். ஃபோகஸ் ஷிப்ட்களின் போது திசைச் சூழலைச் சேர்ப்பது, சிக்கலான இடைமுகங்களை வழிநடத்தும் பயனர்களுக்கு குழப்பத்தைத் தடுக்கலாம். உதாரணமாக, "டாப் லேபிள் முதல் செல் 1, டேபிள்" என்று குறிப்பிடுவதன் மூலம், பயனர்கள் UI இல் தங்கள் நிலை மற்றும் அவர்கள் தொடர்பு கொள்ளும் அமைப்பு இரண்டையும் புரிந்து கொள்ள முடியும். அணுகல்தன்மை அம்சங்களின் இந்த சிந்தனைமிக்க ஒருங்கிணைப்பு WCAG வழிகாட்டுதல்களை சந்திப்பதோடு மட்டுமல்லாமல், உள்ளுணர்வு, பயனர்களை மையமாகக் கொண்ட அனுபவத்தையும் உருவாக்குகிறது. iOS ஆப்ஸ் மேம்பாட்டில் அணுகல்தன்மை முதல் தர குடிமகனாக இருப்பதை இரண்டு தீர்வுகளும் உறுதி செய்கின்றன.
ஃபோகஸ் திசையின் அடிப்படையில் iOS இல் டைனமிக் அணுகல்தன்மை உரை
இந்த தீர்வு ஸ்விஃப்ட் நிரலாக்கத்தில் கவனம் செலுத்துகிறது, UI கூறுகளின் அணுகல்தன்மை லேபிளை ஃபோகஸ் திசையின் அடிப்படையில் மாறும் வகையில் சரிசெய்ய UIKit இன் அணுகல்தன்மை அம்சங்களை மேம்படுத்துகிறது.
// Approach 1: Using Accessibility Focus Delegates
import UIKit
class AccessibleCollectionViewCell: UICollectionViewCell {
override var accessibilityLabel: String? {
get {
return customAccessibilityLabel
}
set {
customAccessibilityLabel = newValue
}
}
private var customAccessibilityLabel: String?
}
class ViewController: UIViewController, UICollectionViewDelegate {
@IBOutlet weak var topLabel: UILabel!
@IBOutlet weak var collectionView: UICollectionView!
@IBOutlet weak var bottomLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
collectionView.delegate = self
}
func collectionView(_ collectionView: UICollectionView,
didUpdateFocusIn context: UICollectionViewFocusUpdateContext,
with coordinator: UIFocusAnimationCoordinator) {
if let nextFocusedCell = context.nextFocusedView as? AccessibleCollectionViewCell {
let direction = context.previouslyFocusedView is UILabel ? "table with n Rows, n Columns" : ""
nextFocusedCell.accessibilityLabel = "\(nextFocusedCell.customAccessibilityLabel ?? ""), \(direction)"
}
}
}
அறிவிப்பு பார்வையாளர்களுடன் டைனமிக் ஃபோகஸ் சரிசெய்தல்
இந்த அணுகுமுறை VoiceOver ஃபோகஸ் மாற்றங்களைக் கேட்கவும் அணுகல்தன்மை லேபிள்களை மாறும் வகையில் புதுப்பிக்கவும் Swift's NotificationCenter ஐப் பயன்படுத்துகிறது.
// Approach 2: Using Notification Center
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var collectionView: UICollectionView!
private var lastFocusedElement: UIView?
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self,
selector: #selector(handleFocusChange),
name: UIAccessibility.elementFocusedNotification,
object: nil)
}
@objc private func handleFocusChange(notification: Notification) {
guard let userInfo = notification.userInfo,
let focusedElement = userInfo[UIAccessibility.focusedElementUserInfoKey] as? UIView else { return }
if let cell = focusedElement as? UICollectionViewCell,
lastFocusedElement is UILabel {
cell.accessibilityLabel = "\(cell.accessibilityLabel ?? ""), table with n Rows, n Columns"
}
lastFocusedElement = focusedElement
}
}
டைனமிக் மற்றும் சூழல் அணுகல் அனுபவங்களை உருவாக்குதல்
அணுகல்தன்மை என்பது நவீன ஆப்ஸ் மேம்பாட்டின் ஒரு மூலக்கல்லாகும், குறிப்பாக iOS போன்ற தளங்களில் VoiceOver போன்ற உதவிக் கருவிகள் முக்கியப் பங்கு வகிக்கின்றன. ஒரு நுணுக்கமான மற்றும் அடிக்கடி கவனிக்கப்படாத அம்சம், வழிசெலுத்தலின் ஃபோகஸ் திசை அடிப்படையில் மாறும் சூழலை வழங்கும் திறன் ஆகும். கவனம் மேலிருந்து கீழாக நகர்கிறதா அல்லது நேர்மாறாக மாறுகிறதா என்பதைக் கண்காணிக்கும் தர்க்கத்தை செயல்படுத்துவதன் மூலம், டெவலப்பர்கள் உறுப்புகளின் அணுகல்தன்மை உரையில் அர்த்தமுள்ள விவரங்களைச் சேர்த்து, பயனர் அனுபவத்தை மேம்படுத்தலாம். எடுத்துக்காட்டாக, கட்டம் அடிப்படையிலான கேலரி பயன்பாட்டில், செல்கள் தங்கள் இருப்பிடத்தையும் சூழலையும் ஒரு தலைப்பிலிருந்து கட்டத்திற்கு மாற்றும்போது, பயனர்கள் கட்டமைப்பிற்குள் தங்கள் இடத்தைப் புரிந்துகொள்ள உதவும். 🔍
மற்றொரு முக்கியமான விஷயம் என்னவென்றால், இந்த டைனமிக் சரிசெய்தல் UICollectionView மட்டும் அல்ல. UITableView, அடுக்குகள் அல்லது தனிப்பயன் காட்சிகள் போன்ற பிற உறுப்புகளுக்கும் இது பயன்படுத்தப்படலாம். எடுத்துக்காட்டாக, ஒரு பயனர் பல-பிரிவு அட்டவணையில் வழிசெலுத்தினால், ஃபோகஸ் உள்ளே நுழையும் அல்லது வெளியேறும் போது தலைப்புகள் அவற்றின் கீழே உள்ள வரிசைகளைப் பற்றிய சூழலைச் சேர்க்கலாம். VoiceOver மூலம் வழிசெலுத்தும் பயனர்கள் கூடுதல் முயற்சியின்றி இடைமுகத்தின் இடஞ்சார்ந்த மற்றும் படிநிலை விழிப்புணர்வைப் பெற முடியும் என்பதை இது உறுதிசெய்கிறது, பயன்பாட்டினை மேம்படுத்துகிறது மற்றும் WCAG தரநிலைகளுக்கு இணங்குகிறது. 🎯
அடிப்படை பயன்பாட்டு நிகழ்வுகளுக்கு அப்பால், இந்த நுட்பம் மேம்பட்ட தொடர்பு முறைகளையும் ஆதரிக்கிறது. உதாரணமாக, ஒரு கல்விப் பயன்பாட்டில், வினாடி வினா கேள்வி கவனம் பெறும்போது, அது கேள்வி எண், மீதமுள்ள மொத்த கேள்விகள் அல்லது தலைப்பைப் பற்றிய குறிப்புகள் போன்ற விவரங்களை அறிவிக்கலாம். இத்தகைய விவரங்கள் நிச்சயதார்த்தத்தை மேம்படுத்துகின்றன மற்றும் உதவி தொழில்நுட்பங்களை நம்பியிருக்கும் பயனர்களுக்கு அறிவாற்றல் சுமையை குறைக்கின்றன. டெவலப்பர்கள் தங்கள் பயன்பாடுகள் பலதரப்பட்ட பார்வையாளர்களுக்கு திறம்படவும் அனைவரையும் உள்ளடக்கியும் சேவை செய்வதை உறுதிசெய்ய, இந்த மாறும் மேம்பாடுகளுக்கு முன்னுரிமை அளிக்க வேண்டும். 🌍
டைனமிக் அணுகல்தன்மை லேபிள்கள் பற்றிய பொதுவான கேள்விகள்
- VoiceOver ஃபோகஸ் மாற்றங்களை எவ்வாறு கண்டறிவது?
- நீங்கள் பயன்படுத்தலாம் UIAccessibility.elementFocusedNotification கவனம் மாற்றங்களைக் கேட்க.
- அணுகல்தன்மை லேபிள்களைப் புதுப்பிக்க சிறந்த வழி எது?
- கலவையைப் பயன்படுத்துதல் accessibilityLabel மற்றும் விருப்ப பண்புகள், போன்ற customAccessibilityLabel, டைனமிக் புதுப்பிப்புகளுக்கு பயனுள்ளதாக இருக்கும்.
- டைனமிக் லேபிள்கள் தரமற்ற UI தளவமைப்புகளுக்கான பயன்பாட்டினை மேம்படுத்த முடியுமா?
- ஆம், கட்டங்கள், அட்டவணைகள் அல்லது தனிப்பயன் காட்சிகளுக்கான விளக்கங்களை வடிவமைப்பதன் மூலம், பயனர்களுக்கு UI கட்டமைப்பைப் பற்றிய சிறந்த புரிதலை வழங்குகிறீர்கள்.
- சூழல் விழிப்புணர்வு லேபிள்களில் என்ன சவால்கள் எழுகின்றன?
- ஃபோகஸ் மாற்றங்கள் முழுவதும் நிலைத்தன்மையை உறுதி செய்வது தந்திரமானதாக இருக்கலாம். வெவ்வேறு வழிசெலுத்தல் காட்சிகளில் சோதனை செய்வது அவசியம்.
- இந்த நுட்பங்களை எப்படி திட்டங்களில் மீண்டும் பயன்படுத்த முடியும்?
- ஃபோகஸ்-அவேர் புதுப்பிப்புகளை நிர்வகிப்பதற்கான ஒரு பயன்பாடு அல்லது அடிப்படை வகுப்பை உருவாக்குவது மறுபயன்பாட்டிற்கான ஒரு திறமையான தீர்வாகும்.
சூழல் லேபிள்களுடன் அணுகலை மேம்படுத்துதல்
டைனமிக் அணுகல்தன்மை உரை வழிசெலுத்தல் அனுபவத்தை மேம்படுத்துகிறது, குறிப்பாக கட்டங்கள் அல்லது சேகரிப்பு காட்சிகள் போன்ற சிக்கலான தளவமைப்புகளில். வரிசைகள் மற்றும் நெடுவரிசைகளை அறிவிப்பது போன்ற ஃபோகஸ் மாற்றங்களுக்கு சூழலைச் சேர்ப்பதன் மூலம், பயனர்கள் இடைமுகத்தில் தங்கள் நிலையைப் பற்றிய தெளிவான புரிதலைப் பெறலாம். இந்த அணுகுமுறை பரந்த பார்வையாளர்களுக்கு உள்ளடக்கம் மற்றும் பயன்பாட்டினை உறுதி செய்கிறது.
கல்வித் தளங்கள் அல்லது கேலரிகள் போன்ற நிஜ-உலகப் பயன்பாடுகளில் இந்த நுட்பங்களைப் பயன்படுத்துவது அவற்றின் செயல்பாட்டை மேம்படுத்துகிறது. பயனர் வழிசெலுத்தல் முறைகளுக்குத் தழுவுவது சிந்தனைமிக்க வடிவமைப்பைப் பிரதிபலிக்கிறது. டெவலப்பர்கள் அடிப்படையிலிருந்து அணுகல்தன்மைக்கு முன்னுரிமை அளிக்க வேண்டும், இணங்குவதை உறுதிசெய்ய வேண்டும் WCAG பல்வேறு பயனர் தேவைகளைப் பூர்த்தி செய்யும் தரநிலைகள் மற்றும் கைவினைப் பயன்பாடுகள். 🌍
iOS இல் டைனமிக் அணுகல்தன்மைக்கான குறிப்புகள் மற்றும் ஆதாரங்கள்
- விரிவான ஆவணங்கள் UIA அணுகல்தன்மை , UIKit மற்றும் அவற்றின் பயன்பாடுகளில் உள்ள அணுகல்தன்மை அம்சங்களை விளக்குகிறது.
- ஆப்பிளின் அதிகாரப்பூர்வ வழிகாட்டியில் இருந்து நுண்ணறிவு மற்றும் எடுத்துக்காட்டுகள் அணுகல்தன்மை தனிப்பயனாக்கம் , டெவலப்பர்களுக்கான நடைமுறை உதவிக்குறிப்புகள்.
- டைனமிக் வாய்ஸ்ஓவர் மேலாண்மை குறித்த சமூக விவாதங்கள் ஸ்டாக் ஓவர்ஃப்ளோ , குறிப்பிட்ட பயன்பாட்டு நிகழ்வுகளுக்கான தீர்வுகள் உட்பட.