इसके माध्यम से साझा किया गया


एक्सेसिबल कैनवास ऐप्स में नियंत्रण व्यवस्थित करें

स्क्रीन रीडर यूज़र को क्रमिक रूप से नेविगेट करने में मदद करने के लिए ऐप में नियंत्रण को व्यवस्थित किया जाना चाहिए. तार्किक ऑर्डर भी कीबोर्ड यूज़र के लिए भ्रम को कम करता है और उन्हें अधिक उत्पादक बनाने में मदद करता है.

सार्थक स्क्रीन नाम

जब कोई स्क्रीन लोड होती है, तो स्क्रीन रीडर उसका नाम कहेगा. यूज़र को ऑरियंटेट करने के लिए एक सार्थक नाम चुनें.

आप Power Apps Studio में कंट्रोल ट्री या गुण पैनल में स्क्रीन का नाम बदल सकते हैं. स्क्रीन का चयन करें, और फिर नाम संपादित करने के लिए पेन आइकन चुनें. स्क्रीन का नाम बदलने के लिए.

स्क्रीन नाम कंट्रोल ट्री या गुण पैनल से बदला जा सकता है, जैसा कि चित्र में दिखाया गया है.

स्क्रीन पर पहला तत्व इसका नाम होता है. यह छिपा हुआ रहता है और केवल स्क्रीन रीडर यूज़र के लिए एक्सेसिबल होता है.

जब एक नया स्क्रीन लोड होता है, तो Power Apps स्क्रीन नाम पर फोकस करता है. यदि आप SetFocus का उपयोग करते हैं, तो स्क्रीन लोड होते ही स्क्रीन का नाम नहीं पढ़ा जाएगा. दिखने वाला शीर्षक बनाने और संदर्भ में परिवर्तन की घोषणा करने के लिए इसे लाइव क्षेत्र बनाने पर विचार करें.

तार्किक नियंत्रण ऑर्डर

स्क्रीन रीडर यूज़र सामग्री को क्रमिक रूप से नेविगेट कर सकते हैं. ऑर्डर नियंत्रण की स्थिति से निर्धारित होता है, ऊपर से नीचे की तरफ शुरू होते हुए, फिर दाएं से बाएं. नियंत्रण का आकार मायने नहीं रखता, केवल इसका X और Y गुण महत्व रखता है.

इस उदाहरण में, A अनुक्रम में पहले दिखाई देता है क्योंकि यह शीर्ष के सबसे करीब है. B और C की ऊर्ध्वाधर स्थिति समान है, लेकिन चूंकि B बाएं के करीब है और इसलिए, यह C से पहले आता है. D अंत में दिखाई देता है क्योंकि यह ऊपर से सबसे दूर है.

पोजिशनिंग 4 नियंत्रण के क्रम को कैसे प्रभावित करती है.

नोट

  • पूर्वावलोकन मोड में किसी ऐप को संपादित करते समय, नियंत्रण ऑर्डर प्रदर्शन कारणों से अपडेट नहीं किया जाता है. ऐप प्रकाशित होने और चलने पर ऑर्डर सुधारा जाएगा.
  • नियंत्रण ऑर्डर वैसा नहीं है जैसा कि Power Apps Studio में नियंत्रण के ट्री व्यू में दिखाया गया है. जब वे ऐप में जोड़े जाते हैं, तो उनके अनुसार ट्री व्यू नियंत्रण को सॉर्ट करता है. यह ऐप चलने पर नियंत्रण के ऑर्डर को प्रभावित नहीं करता है.
  • जब किसी नियंत्रण का X या Y मान किसी अभिव्यक्ति पर सेट किया जाता है, तो परिणाम आने पर नियंत्रण क्रम अपडेट नहीं होता है अभिव्यक्ति बदल जाती है. जब ऐप सहेजा जाता है तो भावों का मूल्यांकन करने के लिए ऐप की प्रारंभिक स्थिति का उपयोग करके ऑर्डर की गणना और निर्धारण किया जाता है।
    • यदि आप इसकी स्थिति बदल रहे हैं क्योंकि अन्य नियंत्रण छिपाए जा रहे हैं या दिखाए जा रहे हैं, तो आप ऑटो-लेआउट कंटेनर को प्रबंधित करने के लिए X का उपयोग कर सकते हैं और Y आपके लिए।
    • आप अभिव्यक्ति मूल्यों की परवाह किए बिना सभी नियंत्रणों को तार्किक तरीके से भी स्थापित कर सकते हैं। उदाहरण के लिए, यदि नियंत्रण A हमेशा नियंत्रण B से नीचे होना चाहिए और B कभी-कभी छिपा हो सकता है, तो A के Y को If(B.Visible, B.Y + B.Height, B.Y + 1) पर सेट करें। 1 जोड़ने से यह सुनिश्चित होता है कि A हमेशा B से नीचे है, भले ही B छिपा हुआ हो।

समूहीकृत नियंत्रण

डिफ़ॉल्ट ऑर्डर पृथक सामग्री के लिए उपयुक्त है, लेकिन समूहीकृत सामग्री के लिए नहीं. आयत नियंत्रण के साथ खींची गई दो टाइलों को एक साथ रखें. प्रत्येक टाइल में एक शीर्षक होता है. शीर्षक के नीचे दो बटन लंबवत होते हैं: पहली टाइल के लिए A और B और दूसरी के लिए C और D.

गलत अभ्यास का उदाहरण: एक समतल संरचना में व्यवस्थित किए गए नियंत्रण.

डिफ़ॉल्ट ऑर्डर ऊपर से नीचे जाता है, फिर दाएं से बाएं. इसलिए, नियंत्रण का ऑर्डर है:

  1. बाएं आयत
  2. दाएं आयत
  3. बाएं शीर्षक
  4. दाएं शीर्षक
  5. A
  6. C
  7. B
  8. D

यह संरचना यह नहीं बताती है कि A और B एक साथ हैं, और इसी तरह C और D एक साथ हैं.

समूह से संबंधित सामग्री के लिए कंटेनर का उपयोग करें. एक कंटेनर में सभी नियंत्रण अनुक्रम में एक साथ दिखाई देंगे. एक कंटेनर के अंदर, नियंत्रणों को एक ही नियम के साथ ऑर्डर किया जाता है: ऊपर से नीचे, फिर दाएं से बाएं.

पिछले उदाहरण के आयतों को कंटेनर के साथ बदलते हुए, नियंत्रण ऑर्डर अब स्क्रीन रीडर यूज़र के लिए तार्किक है:

  1. बाएं कंटेनर
  2. बाएं शीर्षक
  3. A
  4. B
  5. दाएं कंटेनर
  6. दाएं शीर्षक
  7. C
  8. D

अनुशंसित अभ्यास का उदाहरण: कंटेनरों का उपयोग करके पदानुक्रमित संरचना में व्यवस्थित किए गए नियंत्रण.

फ़ॉर्म कार्ड और गैलरी में सभी नियंत्रण स्वचालित रूप से समूहीकृत होते हैं, इसलिए आपको कंटेनर उपयोग करने की आवश्यकता नहीं है. हालांकि, अगर उपसमूह हैं, तो आपको अभी भी उनके लिए कंटेनर का उपयोग करना चाहिए.

इस उदाहरण में, गैलरी पंक्ति में बाईं ओर एक थंबनेल और टेक्स्ट के दो हिस्से हैं. दाईं ओर दो बटन हैं. दृष्टिगत और तार्किक रूप से, नियंत्रण के दो सेट को समूहीकृत किया जाना चाहिए. यह सुनिश्चित करता है कि स्क्रीन रीडर यूज़र दाएं से पहले बाएं समूह का सामना करेंगे.

अनुशंसित अभ्यास का उदाहरण: एक गैलरी में संबंधित नियंत्रण कंटेनर के अंदर समूहीकृत किए जाते हैं.

तार्किक कीबोर्ड नेविगेशन ऑर्डर

TabIndex निर्दिष्ट करता है कि कीबोर्ड यूज़र द्वारा नियंत्रण तक कैसे पहुंचा जा सकता है. TabIndex या तो 0 या -1 होना चाहिए. तार्किक नियंत्रण ऑर्डर के साथ जैसा कि ऊपर बताया गया है, TabIndex के 0 से अधिक होने का बहुत कम कारण है.

कीबोर्ड नेविगेशन ऑर्डर को नियंत्रण के दृश्य प्रवाह का पालन करना चाहिए. यदि नेविगेशन ऑर्डर अप्रत्याशित है, तो आपको पहले यह देखना चाहिए कि ऐप संरचना तार्किक है या नहीं.

नोट

कीबोर्ड नेविगेशन ऑर्डर कंट्रोल ऑर्डर के समान नहीं है. TabIndex केवल टैब कुंजी नेविगेशन को प्रभावित करता है. यह नहीं बदलता है कि स्क्रीन रीडर यूज़र किसी एप्लिकेशन को रैखिक रूप से कैसे नेविगेट करते हैं. कुछ स्क्रीन रीडर यूज़र कीबोर्ड को भी उपयोग नहीं करते हैं.

कस्टम टैब इंडेक्स से बचें

कस्टम टैब इंडेक्स वे होते हैं जो शून्य से बड़े होते हैं. वे लगभग हमेशा खराब डिज़ाइन का संकेत होते हैं. फोकस बदलने के लिए उपयुक्त ऐप संरचना बनाने या SetFocus उपयोग करने जैसे बेहतर विकल्प हैं.

निम्नलिखित कारणों से कस्टम टैब इंडेक्स का उपयोग करने से बचें.

पहुँच क्षमता

कस्टम टैब इंडेक्स रखना पहुँच क्षमता की गंभीर समस्या है. स्क्रीन रीडर उपयोगकर्ता किसी ऐप को उसकी तार्किक संरचना का उपयोग करके नेविगेट करते हैं. कस्टम टैब इंडेक्स उस संरचना को अनदेखा करते हैं. चूंकि स्क्रीन रीडर उपयोगकर्ता टैब कुंजी का उपयोग करके भी नेविगेट कर सकते हैं, जब वे नेविगेशन के अन्य तरीकों से अलग ऑर्डर प्राप्त करते हैं तो वे भ्रमित हो जाएंगे.

प्रयोज्य

जब कुछ आइटम छोड़े गए प्रतीत होते हैं तो उपयोगकर्ता भ्रमित हो सकते हैं. जब फोकस अप्रत्याशित ऑर्डर में चलता है तो वे विचलित हो सकते हैं. यह संज्ञानात्मक अक्षमता वाले उपयोगकर्ताओं के लिए और भी अधिक समस्याग्रस्त है.

रखरखाव

ऐप निर्माताओं को मैन्युअल रूप से एकाधिक नियंत्रणों के TabIndex को अपडेट करना होगा, जब भी कोई नया सम्मिलित किया जाता है. किसी अपडेट को मिस करना या ऑर्डर को गलत करना आसान है.

प्रदर्शन टूल्स

कस्टम टैब इंडेक्स का समर्थन करने के लिए, Power Apps सिस्टम को पृष्ठ पर सभी नियंत्रणों की जांच करनी होती है और उचित ऑर्डर की गणना करनी होती है. यह गणना एक गहन प्रक्रिया है. गैलरी जैसे कंटेनर नियंत्रणों में इस बात के जटिल नियम हैं कि TabIndex बाल नियंत्रण के लिए कैसे काम करता है. सिस्टम इन नियमों का पालन करने के लिए ऐप निर्माता की इच्छित TabIndex को एक अलग मान में मैप करता है. यही कारण है कि भले ही TabIndex सभी नियंत्रणों के लिए शून्य पर सेट हो, वास्तविक HTMLtabindex कुछ सकारात्मक संख्या होगी.

अन्य घटकों के साथ एकीकरण

कस्टम टैब इंडेक्स केवल अंतर्निहित नियंत्रणों के साथ काम करते हैं. नियंत्रण जो Power Apps टैब इंडेक्स सिस्टम में एकीकृत नहीं हैं, उनमें एक अनपेक्षित नेविगेशन ऑर्डर होगा. यह कोड घटकों के लिए समस्या हो सकती है. इन घटकों के डेवलपर्स को इंटरैक्टिव तत्वों का ट्रैक रखना होगा और उन पर टैब इंडेक्स सेट करना होगा. वे तृतीय-पक्ष लाइब्रेरी का उपयोग कर सकते हैं, जो संभवत: टैब इंडेक्स को अनुकूलित करने का तरीका भी न दें.. दूसरी ओर, जब सभी टैब इंडेक्स 0 या -1 होते हैं, तो Power Apps टैब इंडेक्स सिस्टम में शामिल होने की कोई आवश्यकता नहीं होती है. ऐप में एम्बेड किया गया कोई भी तृतीय-पक्ष घटक स्वचालित रूप से सही टैब अनुक्रम प्राप्त करेगा.

दूसरी दिशा में, जब कैनवास ऐप्स किसी अन्य वेब पेज में एम्बेड किए जाते हैं, तो कस्टम टैब इंडेक्स काम नहीं करते हैं. उदाहरण के लिए, कस्टम पृष्ठ। में. Power Apps कैनवास ऐप के बाहर के तत्वों को नियंत्रित नहीं कर सकता, इसलिए संपूर्ण टैब नेविगेशन ऑर्डर अतार्किक होगा.

सरलीकृत टैब इंडेक्स (पूर्वावलोकन)

यह सुनिश्चित करने के लिए कि टैब इंडेक्स 0 या -1 हैं, सेटिंग्स > आगामी विशेषताएँ से ऐप सुविधा सरलीकृत टैब इंडेक्स को सक्षम करें.

सरलीकृत टैब इंडेक्स ऐप सुविधा को सक्षम करना.

महत्वपूर्ण

  • यह एक पूर्वावलोकन सुविधा है.
  • पूर्वावलोकन सुविधाएँ उत्पादन में उपयोग के लिए नहीं होती हैं और इनकी कार्यक्षमता प्रतिबंधित हो सकती हैं. यह सुविधाएँ आधिकारिक रिलीज़ से पहले उपलब्ध होती हैं ताकि ग्राहक शीघ्र पहुँच प्राप्त कर सकें और प्रतिक्रिया प्रदान कर सकें.

जब यह सुविधा सक्षम होती है, तो शून्य से अधिक के सभी TabIndex मानों को शून्य माना जाएगा. यह Power Apps के टैब इंडेक्स सिस्टम को भी अक्षम करता है ताकि यह अन्य घटकों के साथ बेहतर ढंग से एकीकृत हो सके, जैसा कि ऊपर वर्णित है.

कस्टम टैब अनुक्रम के लिए समाधान

उन दुर्लभ परिदृश्यों के लिए जहां कीबोर्ड नेविगेशन ऑर्डर विज़ुअल ऑर्डर से भिन्न होना चाहिए, आप समान प्रभाव के लिए कंटेनर नियंत्रणों को ध्यान से रख सकते हैं.

नीचे दिए गए उदाहरण में, बटन A, बटन B के ऊपर है. प्राकृतिक टैब नेविगेशन ऑर्डर A है, फिर B है.

समान TabIndex वाले दो बटन, लंबवत रूप से स्टैक्ड.

टैब नेविगेशन ऑर्डर को उलटने के लिए, B को कंटेनर नियंत्रण में रखें. कंटेनर के Y मान को A से ऊपर सेट करें. ऐप संरचना में अब कंटेनर (और B) A से पहले है. इसलिए, टैब नेविगेशन ऑर्डर B है, फिर A.

B को एक ऐसे कंटेनर में रखा जाता है जो A के सामने आता है.

इस तकनीक के साथ, स्क्रीन रीडर उपयोगकर्ता टैब कुंजी के बिना नेविगेट करते हुए A से पहले B का भी सामना करेंगे.

अगले कदम

Power Apps में पहुँच योग्‍य रंग

भी देखें