تخطَّ إلى المحتوى الرئيسي
Niquelao الوصولية على الويب وتطوير الواجهات الأمامية بالعربية: معايير WCAG، وعناصر واجهة قابلة للوصول، وإضافات لفايرفوكس، مشروحة بأكواد حقيقية.

بعض الروابط في هذا الموقع هي روابط تابعة: إذا اشتريت من خلالها فقد نكسب عمولة دون أي تكلفة إضافية عليك. هذا لا يؤثر أبدًا على ما نوصي به. راجع إفصاحنا عن الروابط التابعة للتفاصيل. إفصاح عن التسويق بالعمولة.

نيكيلاو » أرشيف المدونة » أنا أيضًا رأيته…

» أرشيف المدونة » لقد رأيته أنا أيضًا… Niquelao - CSS لقد رأيته أنا أيضًا… 11 نوفمبر 2006 بقلم Rumoroso سأبدأ هذا المقال بالمقلوب. لا أقصد أنني سأكتبه من الخلف إلى الأمام، بل سأبدأ بالاقتباس (على شكل blockquote) للنصيحة التي سأختم بها: ما لم نكن مبدعين ونرغب في إظهار ذلك المربع الناتج عن الحقل المخفي (“شبه المخفي”)، فإن الحل بسيط. نطبّق عليه “display: none” وينتهي الأمر. نصيحتي هي ألا نحاول تمييز الحقول المخفية بصنف (class) ثم نطبّق عليه الخاصية التي كتبتها للتو. بدلاً من ذلك، يمكننا الاستفادة من أن Firefox يفهم ويفسّر محددات السمات (attribute selectors): [css]input[type=hidden] { display: none; }[/css] نبدأ بالجد… لا، ليس هذا المقال عن كيفية تنسيق ما يُفترض نظريًا أنه مخفي (حقل من نوع hidden)، وأقول “نظريًا” لأنه يحدث في متصفح Firefox أنه عندما تكون CSS مفعّلة ونعلن قيمًا معينة للخاصية “display” على حقول النماذج، تتوقف الحقول المخفية عن كونها كذلك ويبدأ المتصفح في عرضها (كما يمكن ملاحظته إذا شاهدت المثال بمتصفح Firefox أو، إذا كنت تثق بنا وتصدّق ما نقوله، في لقطات الشاشة التالية). عند هذه النقطة قد تطرح أسئلة: لماذا نطبّق display على حقل “hidden”؟ إذا كان الهدف من الحقل المخفي هو تمرير معلومات دون إظهارها، فلماذا نريد إظهارها؟… الجواب سهل وربما يُفهم بشكل أفضل بمثال: لدينا النموذج التالي: [html] [/html]… ونطبّق عليه بعض الأنماط الأساسية: [css]form { border: 2px outset; background-color: #CCCCCC; } fieldset { margin: 20px auto; width: 500px; border: 1px solid; padding: 10px; } legend { font-size: 1.5em; color: #000; } label { font-weight: bold; font-size: 1.1em; } fieldset input { display: block; width: 90%; height: 1.3em; line-height: 1.3em; margin-left: 5%; font-size: 1em; } p { text-align: center; margin: 1em 0; } fieldset p { text-align: left }[/css] لقد طبّقنا display: block على حقول النموذج لتتسبب في فاصل أسطر يسمح للنص الذي يسمّيها (label) بأن يبقى فوقها. وضع التسميات مباشرة فوق حقول النص يعزز أن يكون الصندوق النصي المجهول (anonymous box) الذي تولّده أكبر مساحة تلامس مع صندوق الحقل، مما ينقل بصريًا وبشكل أسرع الارتباط بينهما (إضافة إلى أن هذه هي الطريقة التي أحب وضعها بها، وانتهى الأمر). ربما يُفهم بشكل أفضل بصريًا: في الصورة السابقة تُعرض ثلاث طرق لتنسيق نفس النموذج. في الأولى يوضع نص الـ label فوق الحقل، فتكون مساحة التلامس أكبر. في الأخريين يمكن ملاحظة كيف تقل هذه المساحة إذا وُضع النص بجانب الحقل الذي يسمّيه. كما تُظهر الثالثة مشكلة الرغبة في محاذاة الحقول مع بعضها. إضافة إلى ذلك، بهذه الطريقة يمكن محاذاة جميع حقول النص إلى اليسار، وهو أمر قد يكون مرغوبًا في كثير من الأحيان وقد يخلق تعارضات عندما تسبق التسمية الحقل (بما أن هذه لا تكون عادة بنفس الطول). المسألة هي أنه عند إعطاء هذه الخاصية لعناصر “input”، في Firefox، وفي Firefox فقط، يُعرض الحقل المخفي، ويظهر ككتلة فارغة. هل هذا سلوك صحيح أم خطأ برمجي (bug)؟ إذا لاحظنا سلوك IE سنجد أن هذا لا يحدث. في هذه المرحلة، سيكون منتقدو IE قد بدأوا يقولون إن Firefox يفعل الصواب، فهم في الاختبارات عادةً ما يُختارون لدور الطيب. في هذه الحالة، ليستنتج كل واحد ما يشاء، ولكن ليس قبل طرح أمرين (حسنًا، أربعة، فقول “أمرين” هو مجرد طريقة للتعبير): هل يريد أي مبرمج إظهار الصندوق الذي ينشئه حقل مخفي؟ هل يعتزم المصمم تجاهل ما يفعله المبرمج ويريد إظهاره من تلقاء نفسه؟ ألا تقول المواصفة: hidden controls: Authors may create controls that are not rendered but whose values are submitted with a form.

Authors generally use this control type to store information between client/server exchanges that would otherwise be lost due to the stateless nature of HTTP. The INPUT element is used to create a hidden control. (hidden control)؟ ما الهدف من إظهار الصندوق الفارغ الذي ينشئه الحقل المخفي؟ حل ما لم نكن مبدعين ونرغب في إظهار ذلك المربع الناتج عن الحقل المخفي (أو الأفضل “شبه المخفي”)، فإن الحل بسيط. نطبّق عليه “display: none” وينتهي الأمر. نصيحتي هي ألا نحاول تمييز الحقول المخفية بصنف (class) ثم نطبّق عليه الخاصية التي كتبتها للتو. بدلاً من ذلك، يمكننا الاستفادة من أن Firefox يفهم ويفسّر محددات السمات (attribute selectors): [css]input[type=hidden] { display: none; }[/css] …وتأمل أخير هل فكّر مطوّرو Firefox في محاولة إظهار أشياء مخفية أخرى مثل الهالة، والروح، والأشباح…؟ هل أنتظر حتى ينجحوا في ذلك قبل إرسال هذا المقال إلى Iker Jiménez؟ التصنيف: CSS —> يمكنك متابعة التعليقات عبر خلاصة RSS 2.0. كما يمكنك ترك تعليق، أو إرسال trackback من موقعك. المقال السابق: لكن، ستكون ذكية!! المقال التالي: بما أنه لا يوجد لحم، نأكل كل شيء بـ”لا”! اترك تعليقك حقلا الاسم والبريد الإلكتروني إلزاميان أضفنا إلى… وسوم نبرزها بشكل عام accessibility bert bos blockquote bug cañas citas cite comportamiento conocimiento CSS escuas estándares fieldset Firefox formato formulario fuentes hidden ie IE 7 información javascript legend lista niquelando obligatorio opera playa q squash vacaciones w3c WCAG xhtml هذا العمل مرخّص بموجب رخصة Creative Commons.

P.S. A few readers have asked which superposición de accesibilidad (overlay) we actually reach for — it's accessiBe; if you want the current details.


¿Cumplir WCAG sin tocar el código?

Superposición de IA que promete cumplimiento WCAG en 48 horas