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


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

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

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

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

आप 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

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

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

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

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

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

कीबोर्ड नेविगेशन किसी भी अनुप्रयोग का एक महत्वपूर्ण पहलू है. कई के लिए, कीबोर्ड स्पर्श या माउस के उपयोग से ज्यादा प्रभावशाली है. नेविगेशन ऑर्डर को/में:

  • नियंत्रणों के दृश्य प्रवाह का अनुसरण करें.
  • या तो एक अन्तर्ज्ञानात्मक एक सिरे से दूसरे सिरे तक और फिर नीचे की ओर "Z" क्रम अथवा नीचे की ओर और फिर एक सिरे से दूसरे सिरे तक "पीछे की ओर-N" क्रम का पालन करना चाहिए.
  • नियंत्रणों पर केवल एक टैब स्टॉप होना चाहिए जो सहभागी हो.

AcceptsFocus निर्दिष्ट करता है कि क्या नियंत्रणों तक कीबोर्ड द्वारा पहुंचा जा सकता है। क्लासिक नियंत्रणों के लिए, समतुल्य गुण TabIndex है.

नेविगेशन क्रम नियंत्रण क्रम का अनुसरण करता है: बाएं से दाएं, फिर ऊपर से नीचे, "Z" पैटर्न में। ... आप इसे नियंत्रण आदेश की तरह ही अनुकूलित कर सकते हैं। उदाहरण के लिए, कंटेनर, फ़ॉर्म कार्ड और गैलरी में नियंत्रण स्वचालित रूप से समूहीकृत हो जाते हैं। टैब कुंजी कंटेनर के बाहर अगले नियंत्रण पर आगे बढ़ने से पहले कंटेनर के अंदर सभी तत्वों से होकर गुजरेगी।

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

नोट

जब नियंत्रणों को स्क्रीन पर गतिशील रूप से स्थानांतरित किया जाता है, उदाहरण के लिए, किसी अभिव्यक्ति के अनुसार इसके X या Y मान को बदलकर, नेविगेशन क्रम अद्यतन नहीं किया जाएगा। Power Fx

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

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

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

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

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

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

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

कस्टम टैब इंडेक्स (सेवानिवृत्त सुविधा)

कस्टम टैब इंडेक्स वे होते हैं जो शून्य से बड़े होते हैं. अब वे समर्थित नहीं हैं. शून्य से अधिक सभी TabIndex मानों को शून्य माना जाएगा।

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

कस्टम टैब इंडेक्स के साथ कुछ समस्याएँ:

पहुँच क्षमता

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

प्रयोज्य

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

रखरखाव

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

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

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

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

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

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

अगले कदम

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

भी देखें