2013-02-13 14 views
8

मैं वर्तमान में किसी फॉर्म में कुछ दिनांक इनपुट जोड़ रहा हूं। मेरे पास 'स्टार्ट डेट' और 'एंड डेट' इनपुट है लेकिन दोनों इनपुट के लिए केवल एक लेबल ('तिथियां') का उपयोग करना चाहते हैं।दो इनपुट के लिए एकल लेबल

क्या ऐसा करना संभव है? अभिगम्यता चिंताओं क्या हैं?

मेरी वर्तमान सोच एक लेबल 'तिथियां' है जो दिखाया गया है कि स्क्रीन पाठकों के लिए प्रत्येक इनपुट के लिए दो छिपे हुए लेबल हैं। क्या यह जाने का तरीका है? क्या इस तरह की चीज करने वाली बड़ी वेबसाइटों के कोई उदाहरण हैं (यदि संभव हो तो सरकारी वेबसाइटें)?

यह एक ऐसी परियोजना है जो सरकारी एजेंसी द्वारा उपयोगकर्ता हो सकती है, इसलिए अभिगम्यता का अनुपालन करने पर सख्त नियम हैं।

+0

आप 'उपयोग' कैसे परिभाषित करते हैं? क्या आपका मतलब है कि लेबल पर क्लिक करना दोनों फ़ील्ड (जैसे 'विशेषता' के साथ) पर ध्यान केंद्रित करना चाहिए? – BenM

+0

अच्छी तरह से विशेषता के लिए सहायक प्रौद्योगिकी को सही इनपुट इत्यादि के उपयोगकर्ता को सूचित करने के लिए सहायक तकनीक को अनुमति देने की आवश्यकता होगी – AverageMarcus

उत्तर

6

इस मामले में कुछ के माध्यम से सीएसएस का उपयोग कर पृष्ठ से सेट किया जा सकता

एचटीएमएल

: एक fieldset में आदानों रैप करने के लिए, "तिथियां" के लिए एक legend का उपयोग दोनों inputs के लिए labels का उपयोग करें और छिपाने के लेबल होगा

सीएसएस

fieldset { 
    border: none; 
} 
label { 
    margin-left: -999em; 
} 
input { 
    display: block; 
} 

Fiddle here

यह भी देखें: WCAG 2, H71: Providing a description for groups of form controls using fieldset and legend elements

1

यहां मुद्दा यह है कि आप प्रत्येक लेबल के लिए केवल एक for निर्दिष्ट कर सकते हैं। मैं कल्पना करूंगा, अभिगम्यता के उद्देश्यों के लिए प्रत्येक तारीख के लिए दो labels एक दिखाना सबसे अच्छा होगा। इस तरह स्क्रीन स्क्रीन रीडर का उपयोग करने वाले किसी भी व्यक्ति को प्रत्येक इनपुट के लिए एक वैध लेबल मिलेगा।

<label for="x">x name</label><input name="x"/> 
<label for="y">y name</label><input name="y"/> 
+0

क्या आप स्क्रीन पाठकों के लिए छिपे हुए लेबल का उपयोग करने का सुझाव देते हैं? – AverageMarcus

+0

100% सुनिश्चित नहीं है कि छिपे हुए लेबल पर सिफारिशें क्या हैं। मुझे आश्चर्य नहीं होगा अगर कुछ पाठक छुपे हुए मूल्य नहीं पढ़ेंगे, मुझे लगता है कि यह छिपी हुई आपकी परिभाषा पर भी निर्भर करेगा! – Liam

+3

यह सबसे अधिक पहुंच-योग्यतापूर्ण दृष्टिकोण है, और पहली जगह में समस्या पैदा करने से बचाता है। यह अवधारणात्मक रूप से सरल और समझ में आता है, जो एक महत्वपूर्ण पहुंच सुविधा भी है। संज्ञानात्मक कठिनाइयों वाले लोगों को एक पाठ के बीच एक सरल और समझने योग्य सहयोग होना चाहिए जो अपेक्षित इनपुट और वास्तविक इनपुट के लिए नियंत्रण बताता है। इस कारण से, दृश्य प्रतिपादन में लेबल * छुपा नहीं होना चाहिए। –

4

मुझे लगता है कि प्रत्येक इनपुट के साथ एक लेबल शामिल करना आपकी सबसे अच्छी शर्त होगी। मुझे लगता है कि सबसे अच्छा मार्कअप तब लेबल कि आप वास्तव में पृष्ठ पर प्रदर्शित नहीं करना चाहते हैं के लिए बस

.hide { 
    position: absolute; 
    left: -9999em; 
} 

... या इसी तरह

+1

निश्चित रूप से 'प्रदर्शन: कोई नहीं' स्थिति से बेहतर होगा: पूर्ण'? – AverageMarcus

+4

कुछ स्क्रीन पाठक 'डिस्प्ले को अनदेखा करते हैं: कोई भी तत्व नहीं। – BenM

+0

वास्तव में? यह मेरे लिए समाचार है। क्या आपके पास कोई उदाहरण है? – AverageMarcus

संबंधित मुद्दे