मोडल आणि नॉन-मोडल विंडोजसाठी सुलभतेवर लक्ष केंद्रित करणारे डायलॉग व्यवस्थापन मार्गदर्शक, जे जागतिक स्तरावर समावेशक वापरकर्ता अनुभव सुनिश्चित करते.
डायलॉग व्यवस्थापन: मोडल आणि नॉन-मोडल विंडोजमध्ये सुलभता सुनिश्चित करणे
वापरकर्ता इंटरफेस (UI) डिझाइनच्या क्षेत्रात, डायलॉग्स वापरकर्त्यांशी संवाद साधण्यात, माहिती प्रदान करण्यात किंवा इनपुटची विनंती करण्यात महत्त्वाची भूमिका बजावतात. हे डायलॉग्स मोडल किंवा नॉन-मोडल विंडोज म्हणून प्रकट होऊ शकतात, प्रत्येकामध्ये विशिष्ट सुलभतेचे विचार करणे आवश्यक असते. हे मार्गदर्शक डायलॉग व्यवस्थापनाच्या गुंतागुंतीमध्ये खोलवर जाते, ज्यात वेब कंटेंट ॲक्सेसिबिलिटी गाइडलाइन्स (WCAG) सारख्या स्थापित मानकांचे पालन करून आणि ॲक्सेसिबल रिच इंटरनेट ॲप्लिकेशन्स (ARIA) एट्रीब्यूट्सचा वापर करून, सर्व वापरकर्त्यांसाठी, त्यांच्या क्षमता विचारात न घेता, सुलभता सुनिश्चित करण्यावर लक्ष केंद्रित केले आहे.
मोडल आणि नॉन-मोडल डायलॉग्स समजून घेणे
सुलभतेच्या विचारांमध्ये जाण्यापूर्वी, मोडल आणि नॉन-मोडल डायलॉग्स म्हणजे काय हे परिभाषित करणे आवश्यक आहे:
- मोडल डायलॉग्स: मोडल डायलॉग, ज्याला मोडल विंडो असेही म्हणतात, हा एक UI घटक आहे जो मुख्य विंडो अक्षम करतो परंतु मोडल विंडोला चाइल्ड विंडो म्हणून दृश्यमान ठेवतो. वापरकर्त्यांनी मोडल डायलॉगशी संवाद साधला पाहिजे आणि मुख्य ॲप्लिकेशन विंडोवर परत येण्यापूर्वी ते सामान्यतः बंद केले पाहिजे (उदा. पुष्टीकरण बटण किंवा "X" आयकॉनवर क्लिक करून). सामान्य उदाहरणांमध्ये अलर्ट बॉक्स, पुष्टीकरण प्रॉम्प्ट आणि सेटिंग्ज पॅनेल समाविष्ट आहेत.
- नॉन-मोडल डायलॉग्स: याउलट, नॉन-मोडल डायलॉग वापरकर्त्यांना डायलॉग आणि मुख्य ॲप्लिकेशन विंडो या दोन्हींशी एकाच वेळी संवाद साधण्याची परवानगी देतो. ॲप्लिकेशनच्या इतर भागांमध्ये प्रवेश अवरोधित न करता डायलॉग उघडा राहतो. उदाहरणांमध्ये ग्राफिक्स एडिटिंग सॉफ्टवेअरमधील टूल पॅलेट किंवा मेसेजिंग ॲप्लिकेशन्समध्ये चॅट विंडोज समाविष्ट आहेत.
डायलॉग्ससाठी सुलभतेचे विचार
UI डिझाइनमध्ये सुलभता सर्वोपरि आहे. डायलॉग्स सुलभ आहेत याची खात्री करणे म्हणजे दिव्यांग व्यक्तींसह सर्व वापरकर्ते त्यांचा प्रभावीपणे वापर करू शकतात. यामध्ये विविध बाबींचा समावेश आहे, जसे की:
- कीबोर्ड नॅव्हिगेशन: जे वापरकर्ते कीबोर्ड नॅव्हिगेशनवर अवलंबून असतात त्यांना डायलॉगमध्ये, आत आणि बाहेर सहजपणे नॅव्हिगेट करता आले पाहिजे.
- स्क्रीन रीडर सुसंगतता: स्क्रीन रीडर्सने डायलॉगचा उद्देश आणि सामग्री, तसेच त्यातील कोणत्याही परस्परसंवादी घटकांची अचूक घोषणा केली पाहिजे.
- फोकस व्यवस्थापन: योग्य फोकस व्यवस्थापन हे सुनिश्चित करते की जेव्हा डायलॉग उघडतो, डायलॉगमध्ये फिरतो आणि डायलॉग बंद झाल्यावर मूळ घटकावर परत येतो तेव्हा कीबोर्ड फोकस योग्यरित्या ठेवला जातो.
- दृश्य स्पष्टता: डायलॉगमध्ये मजकूर आणि पार्श्वभूमीच्या रंगांमध्ये पुरेसा कॉन्ट्रास्ट असावा आणि व्हिज्युअल लेआउट स्पष्ट आणि समजण्यास सोपा असावा.
- टच टार्गेट आकार: टच-आधारित इंटरफेससाठी, डायलॉगमधील परस्परसंवादी घटकांमध्ये पुरेसा आकाराचे टच टार्गेट असावेत.
- संज्ञानात्मक सुलभता: डायलॉगमधील भाषा आणि सामग्री स्पष्ट, संक्षिप्त आणि समजण्यास सोपी असावी, ज्यामुळे संज्ञानात्मक भार कमी होतो.
डायलॉग सुलभतेसाठी ARIA एट्रीब्यूट्स
ARIA (ॲक्सेसिबल रिच इंटरनेट ॲप्लिकेशन्स) एट्रीब्यूट्स स्क्रीन रीडर्स सारख्या सहाय्यक तंत्रज्ञानांना सिमेंटिक माहिती प्रदान करतात, ज्यामुळे त्यांना UI घटक अधिक अचूकपणे समजून घेण्यास आणि सादर करण्यास मदत होते. डायलॉग सुलभतेसाठी मुख्य ARIA एट्रीब्यूट्समध्ये खालील गोष्टींचा समावेश आहे:
- `role="dialog"` किंवा `role="alertdialog"`: हा एट्रीब्यूट घटकाला डायलॉग म्हणून ओळखतो. महत्त्वाच्या किंवा तातडीच्या माहितीसाठी `alertdialog` वापरला पाहिजे.
- `aria-labelledby="[ID of heading]"`: हा एट्रीब्यूट डायलॉगला त्याच्या उद्देशाचे वर्णन करणाऱ्या हेडिंग घटकाशी जोडतो.
- `aria-describedby="[ID of description]"`: हा एट्रीब्यूट डायलॉगला अतिरिक्त संदर्भ किंवा सूचना प्रदान करणाऱ्या वर्णनात्मक घटकाशी जोडतो.
- `aria-modal="true"`: हा एट्रीब्यूट सूचित करतो की डायलॉग मोडल आहे, ज्यामुळे डायलॉगच्या बाहेरील घटकांशी संवाद साधण्यास प्रतिबंध होतो. मोडल वर्तणूक सहाय्यक तंत्रज्ञानापर्यंत पोहोचवण्यासाठी हे महत्त्वपूर्ण आहे.
- `tabindex="0"`: डायलॉगमधील घटकावर `tabindex="0"` सेट केल्याने त्याला कीबोर्ड नॅव्हिगेशनद्वारे फोकस प्राप्त करण्याची परवानगी मिळते.
मोडल डायलॉग सुलभता: सर्वोत्तम पद्धती
मोडल डायलॉग्स त्यांच्या अवरोधक स्वभावामुळे विशिष्ट सुलभतेची आव्हाने सादर करतात. मोडल डायलॉग सुलभता सुनिश्चित करण्यासाठी येथे काही सर्वोत्तम पद्धती आहेत:
१. योग्य ARIA एट्रीब्यूट्स
आधी नमूद केल्याप्रमाणे, `role="dialog"` (किंवा तातडीच्या संदेशांसाठी `role="alertdialog"`), `aria-labelledby`, `aria-describedby`, आणि `aria-modal="true"` वापरणे डायलॉग आणि त्याचा उद्देश सहाय्यक तंत्रज्ञानांना ओळखण्यासाठी महत्त्वपूर्ण आहे.
उदाहरण:
<div role="dialog" aria-labelledby="confirmation-heading" aria-modal="true">
<h2 id="confirmation-heading">हटविण्याची पुष्टी करा</h2>
<p>तुम्हाला खात्री आहे का की तुम्हाला हा आयटम हटवायचा आहे? ही क्रिया पूर्ववत केली जाऊ शकत नाही.</p>
<button>पुष्टी करा</button>
<button>रद्द करा</button>
</div>
२. फोकस व्यवस्थापन
जेव्हा मोडल डायलॉग उघडतो, तेव्हा कीबोर्ड फोकस लगेच डायलॉगमधील पहिल्या परस्परसंवादी घटकाकडे (उदा. पहिले बटण किंवा इनपुट फील्ड) हलवले पाहिजे. जेव्हा डायलॉग बंद होतो, तेव्हा फोकस डायलॉगला ट्रिगर करणाऱ्या घटकाकडे परत यायला हवा.
अंमलबजावणीसाठी विचार:
- जावास्क्रिप्ट: डायलॉग उघडल्यावर आणि बंद झाल्यावर योग्य घटकावर प्रोग्रॅमॅटिकली फोकस सेट करण्यासाठी जावास्क्रिप्ट वापरा.
- फोकस ट्रॅपिंग: कीबोर्ड फोकस डायलॉग उघडा असताना त्याच्या आतच राहील याची खात्री करण्यासाठी फोकस ट्रॅपिंग लागू करा. हे वापरकर्त्यांना चुकून डायलॉगच्या बाहेर टॅब दाबण्यापासून आणि त्यांचे स्थान गमावण्यापासून प्रतिबंधित करते. हे सहसा टॅब की प्रेस ऐकण्यासाठी जावास्क्रिप्ट वापरून साध्य केले जाते आणि आवश्यक असल्यास, फोकस डायलॉगच्या सुरुवातीला किंवा शेवटी सायकल केले जाते.
उदाहरण (संकल्पनात्मक जावास्क्रिप्ट):
function openModal(modalId) {
const modal = document.getElementById(modalId);
modal.style.display = "block";
const firstFocusableElement = modal.querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
firstFocusableElement.focus();
}
function closeModal(modalId, triggeringElementId) {
const modal = document.getElementById(modalId);
modal.style.display = "none";
const triggeringElement = document.getElementById(triggeringElementId);
triggeringElement.focus();
}
३. कीबोर्ड सुलभता
डायलॉगमधील सर्व परस्परसंवादी घटक कीबोर्ड वापरून ॲक्सेस आणि सक्रिय केले जाऊ शकतात याची खात्री करा. यामध्ये बटणे, लिंक्स, फॉर्म फील्ड आणि कोणतेही कस्टम कंट्रोल्स समाविष्ट आहेत.
विचार:
- टॅब क्रम: टॅब क्रम तार्किक आणि अंतर्ज्ञानी असावा. सामान्यतः, टॅब क्रम डायलॉगच्या व्हिज्युअल लेआउटचे अनुसरण करतो.
- कीबोर्ड शॉर्टकट: डायलॉगमधील सामान्य क्रियांसाठी कीबोर्ड शॉर्टकट प्रदान करा (उदा. डायलॉग बंद करण्यासाठी Escape की किंवा क्रिया पुष्टी करण्यासाठी Enter की वापरणे).
४. व्हिज्युअल डिझाइन
मोडल डायलॉगचे व्हिज्युअल डिझाइन हे स्पष्टपणे सूचित केले पाहिजे की ते मुख्य ॲप्लिकेशन विंडोपासून वेगळे आहे. हे कॉन्ट्रास्टिंग पार्श्वभूमी रंग, एक वेगळी बॉर्डर किंवा शॅडो इफेक्ट वापरून साध्य केले जाऊ शकते. वाचनीयतेसाठी मजकूर आणि पार्श्वभूमीमध्ये पुरेसा रंग कॉन्ट्रास्ट सुनिश्चित करा.
५. सिमेंटिक एचटीएमएल (Semantic HTML)
शक्य असेल तेव्हा सिमेंटिक एचटीएमएल (semantic HTML) घटक वापरा. उदाहरणार्थ, बटणांसाठी <button> घटक, फॉर्म इनपुट लेबल करण्यासाठी <label> घटक आणि शीर्षकांसाठी <h2> किंवा <h3> घटक वापरा.
६. आंतरराष्ट्रीयीकरण आणि स्थानिकीकरण
डायलॉग डिझाइन आणि अंमलबजावणी करताना वेगवेगळ्या सांस्कृतिक पार्श्वभूमीच्या वापरकर्त्यांच्या गरजा विचारात घ्या. यामध्ये डायलॉग सामग्रीच्या स्थानिक आवृत्त्या प्रदान करणे आणि डायलॉग लेआउट वेगवेगळ्या मजकूर दिशांना (उदा. उजवीकडून-डावीकडे भाषा) योग्यरित्या जुळवून घेईल याची खात्री करणे समाविष्ट आहे.
उदाहरण: वापरकर्त्याला त्याचे खाते हटविण्यास सांगणारा एक पुष्टीकरण डायलॉग प्रत्येक लक्ष्य भाषेसाठी अचूक आणि सांस्कृतिकदृष्ट्या योग्यरित्या अनुवादित केला पाहिजे. उजवीकडून-डावीकडे भाषांसाठी लेआउटमध्ये देखील समायोजन करण्याची आवश्यकता असू शकते.
नॉन-मोडल डायलॉग सुलभता: सर्वोत्तम पद्धती
नॉन-मोडल डायलॉग्स, जरी मोडल डायलॉग्सपेक्षा कमी व्यत्यय आणणारे असले तरी, त्यांच्यासाठीही सुलभतेकडे काळजीपूर्वक लक्ष देण्याची आवश्यकता आहे. येथे काही सर्वोत्तम पद्धती आहेत:
१. स्पष्ट व्हिज्युअल फरक
गोंधळ टाळण्यासाठी नॉन-मोडल डायलॉग मुख्य ॲप्लिकेशन विंडोपासून व्हिज्युअली वेगळा आहे याची खात्री करा. हे बॉर्डर, पार्श्वभूमी रंग किंवा हलक्या शॅडोचा वापर करून साध्य केले जाऊ शकते.
२. फोकस व्यवस्थापन
नॉन-मोडल डायलॉग्स मुख्य विंडोशी संवाद साधण्यात अडथळा आणत नसले तरी, योग्य फोकस व्यवस्थापन अजूनही महत्त्वाचे आहे. जेव्हा डायलॉग उघडतो, तेव्हा फोकस डायलॉगमधील पहिल्या परस्परसंवादी घटकाकडे हलवला पाहिजे. वापरकर्ते कीबोर्ड नॅव्हिगेशन वापरून डायलॉग आणि मुख्य विंडोमध्ये सहजपणे स्विच करू शकले पाहिजेत.
३. ARIA एट्रीब्यूट्स
डायलॉगबद्दल सिमेंटिक माहिती सहाय्यक तंत्रज्ञानांना प्रदान करण्यासाठी `role="dialog"`, `aria-labelledby`, आणि `aria-describedby` वापरा. नॉन-मोडल डायलॉग्सना मोडल डायलॉग्सपासून वेगळे करण्यासाठी `aria-modal="false"` वापरणे किंवा `aria-modal` वगळणे महत्त्वाचे आहे.
उदाहरण:
<div role="dialog" aria-labelledby="font-settings-heading">
<h2 id="font-settings-heading">फॉन्ट सेटिंग्ज</h2>
<label for="font-size">फॉन्ट आकार:</label>
<input type="number" id="font-size" value="12">
<button>लागू करा</button>
</div>
४. कीबोर्ड सुलभता
डायलॉगमधील सर्व परस्परसंवादी घटक कीबोर्ड वापरून ॲक्सेस आणि सक्रिय केले जाऊ शकतात याची खात्री करा. टॅब क्रम तार्किक आणि अंतर्ज्ञानी असावा, ज्यामुळे वापरकर्त्यांना डायलॉग आणि मुख्य विंडोमध्ये सहजपणे नॅव्हिगेट करता येईल.
५. ओव्हरलॅपिंग टाळा
नॉन-मोडल डायलॉग्स अशा प्रकारे ठेवणे टाळा की ज्यामुळे मुख्य ॲप्लिकेशन विंडोमधील महत्त्वाची सामग्री झाकली जाईल. डायलॉग स्पष्ट आणि सुलभ ठिकाणी ठेवला पाहिजे.
६. जागरूकता आणि संवाद
जेव्हा नॉन-मोडल डायलॉग उघडतो, तेव्हा वापरकर्त्याला दृष्यदृष्ट्या किंवा श्रवणदृष्ट्या (ARIA लाइव्ह रीजन वापरून) कळवणे उपयुक्त ठरते की एक नवीन डायलॉग आला आहे, विशेषतः जर तो पार्श्वभूमीत उघडला असेल आणि लगेच लक्षात येणार नाही.
व्यावहारिक उदाहरणे आणि कोड स्निपेट्स
चला या संकल्पना स्पष्ट करण्यासाठी काही व्यावहारिक उदाहरणे आणि कोड स्निपेट्स पाहूया.
उदाहरण १: एक मोडल पुष्टीकरण डायलॉग
<button id="delete-button" onclick="openModal('delete-confirmation-modal', 'delete-button')">आयटम हटवा</button>
<div id="delete-confirmation-modal" role="dialog" aria-labelledby="delete-heading" aria-modal="true" style="display:none;">
<h2 id="delete-heading">हटविण्याची पुष्टी करा</h2>
<p>तुम्हाला खात्री आहे का की तुम्हाला हा आयटम हटवायचा आहे? ही क्रिया पूर्ववत केली जाऊ शकत नाही.</p>
<button onclick="//आयटम हटवण्याचे लॉजिक; closeModal('delete-confirmation-modal', 'delete-button')">पुष्टी करा</button>
<button onclick="closeModal('delete-confirmation-modal', 'delete-button')">रद्द करा</button>
</div>
उदाहरण २: एक नॉन-मोडल फॉन्ट सेटिंग्ज डायलॉग
<button id="font-settings-button" onclick="openModal('font-settings-dialog', 'font-settings-button')">फॉन्ट सेटिंग्ज</button>
<div id="font-settings-dialog" role="dialog" aria-labelledby="font-settings-heading" style="display:none;">
<h2 id="font-settings-heading">फॉन्ट सेटिंग्ज</h2>
<label for="font-size">फॉन्ट आकार:</label>
<input type="number" id="font-size" value="12"><br>
<label for="font-family">फॉन्ट फॅमिली:</label>
<select id="font-family">
<option value="Arial">Arial</option>
<option value="Verdana">Verdana</option>
<option value="Times New Roman">Times New Roman</option>
</select><br>
<button onclick="//फॉन्ट सेटिंग्ज लॉजिक लागू करा">लागू करा</button>
</div>
चाचणी आणि प्रमाणीकरण
डायलॉगची सुलभता सुनिश्चित करण्यासाठी संपूर्ण चाचणी आवश्यक आहे. यामध्ये खालील गोष्टींचा समावेश आहे:
- मॅन्युअल चाचणी: डायलॉग नॅव्हिगेट करण्यासाठी आणि संवाद साधण्यासाठी कीबोर्ड आणि स्क्रीन रीडर वापरा.
- स्वयंचलित चाचणी: संभाव्य सुलभता समस्या ओळखण्यासाठी स्वयंचलित चाचणी साधने वापरा. Axe DevTools, WAVE आणि Lighthouse सारखी साधने सुलभता तपासणी स्वयंचलित करण्यात मदत करू शकतात.
- वापरकर्ता चाचणी: डायलॉगची उपयोगिता आणि सुलभतेवर अभिप्राय गोळा करण्यासाठी दिव्यांग व्यक्तींसोबत वापरकर्ता चाचणी आयोजित करा.
WCAG अनुपालन
सुलभ डायलॉग तयार करण्यासाठी वेब कंटेंट ॲक्सेसिबिलिटी गाइडलाइन्स (WCAG) चे पालन करणे महत्त्वाचे आहे. संबंधित WCAG यश निकषांमध्ये खालील गोष्टींचा समावेश आहे:
- १.१.१ नॉन-टेक्स्ट कंटेंट: नॉन-टेक्स्ट कंटेंटसाठी (उदा. प्रतिमा, आयकॉन) मजकूर पर्याय प्रदान करा.
- १.३.१ माहिती आणि संबंध: माहिती आणि संबंध मार्कअप किंवा डेटा एट्रीब्यूट्सद्वारे पोहोचवले जातात याची खात्री करा.
- १.४.३ कॉन्ट्रास्ट (किमान): मजकूर आणि पार्श्वभूमीच्या रंगांमध्ये पुरेसा कॉन्ट्रास्ट सुनिश्चित करा.
- २.१.१ कीबोर्ड: सर्व कार्यक्षमता कीबोर्डवरून उपलब्ध करा.
- २.४.३ फोकस क्रम: फोकस क्रम तार्किक आणि अंतर्ज्ञानी आहे याची खात्री करा.
- २.४.७ फोकस दृश्यमान: फोकस इंडिकेटर नेहमी दृश्यमान असल्याची खात्री करा.
- ३.२.१ फोकसवर: घटक अनपेक्षितपणे फोकस प्राप्त करत नाहीत याची खात्री करा.
- ४.१.२ नाव, भूमिका, मूल्य: सर्व UI घटकांचे नाव, भूमिका आणि मूल्य सहाय्यक तंत्रज्ञानाद्वारे प्रोग्रॅमॅटिकली निर्धारित केले जाऊ शकते याची खात्री करा.
जागतिक विचार
जागतिक प्रेक्षकांसाठी डायलॉग डिझाइन करताना, खालील गोष्टी विचारात घ्या:
- स्थानिकीकरण: सर्व मजकूर सामग्री योग्य भाषांमध्ये अनुवादित करा.
- आंतरराष्ट्रीयीकरण: डायलॉग लेआउट वेगवेगळ्या मजकूर दिशा आणि सांस्कृतिक नियमांनुसार योग्यरित्या जुळवून घेतो याची खात्री करा. तारीख आणि वेळेचे स्वरूप, चलन चिन्हे आणि पत्त्याचे स्वरूप संस्कृतीनुसार लक्षणीयरीत्या बदलतात.
- सांस्कृतिक संवेदनशीलता: काही संस्कृतींमध्ये आक्षेपार्ह किंवा अयोग्य वाटू शकतील अशा प्रतिमा किंवा चिन्हांचा वापर टाळा.
उदाहरण: जपानमध्ये वापरल्या जाणाऱ्या डायलॉगला अमेरिकेत वापरल्या जाणाऱ्या डायलॉगपेक्षा उभ्या मजकूर लेआउट आणि वेगवेगळ्या तारीख स्वरूपांना सामावून घेण्याची आवश्यकता असू शकते.
निष्कर्ष
मोडल आणि नॉन-मोडल दोन्ही प्रकारचे सुलभ डायलॉग तयार करणे हे समावेशक UI डिझाइनचे एक आवश्यक पैलू आहे. या मार्गदर्शिकेत वर्णन केलेल्या सर्वोत्तम पद्धतींचे पालन करून, WCAG मार्गदर्शक तत्त्वांचे पालन करून आणि ARIA एट्रीब्यूट्सचा प्रभावीपणे वापर करून, विकासक हे सुनिश्चित करू शकतात की सर्व वापरकर्ते, त्यांच्या क्षमता विचारात न घेता, डायलॉगशी अखंडपणे आणि प्रभावीपणे संवाद साधू शकतात. लक्षात ठेवा की सुलभता केवळ अनुपालनाबद्दल नाही; तर प्रत्येकासाठी अधिक समावेशक आणि न्याय्य वापरकर्ता अनुभव तयार करण्याबद्दल आहे. सुलभतेच्या समस्या ओळखण्यासाठी आणि त्यांचे निराकरण करण्यासाठी आणि एकूण वापरकर्ता अनुभव सुधारण्यासाठी दिव्यांग वापरकर्त्यांकडून सतत चाचणी घेणे आणि अभिप्राय गोळा करणे महत्त्वाचे आहे. सुलभतेला प्राधान्य देऊन, आपण असे डायलॉग तयार करू शकता जे केवळ कार्यात्मक आणि दृष्यदृष्ट्या आकर्षकच नाहीत तर जगभरातील सर्व वापरकर्त्यांसाठी वापरण्यायोग्य आणि आनंददायक देखील आहेत.