نيكيلاو » acc_calendar: تقويم يمكن الوصول إليه بلغة جافاسكريبت (غير ضروري لكنه مفيد)
» acc_calendar: تقويم يمكن الوصول إليه بلغة جافاسكربت (غير ضروري لكنه مفيد) Niquelao كيف تقول أن الأمر قد انتهى بك؟ 7 يوليو 2007 بقلم Rumoroso —> هل إمكانية الوصول وجافاسكربت؟ acc_calendar: تقويم يمكن الوصول إليه بلغة جافاسكربت (غير ضروري لكنه مفيد) تم التحديث في 1 يونيو 2008، بقلم Rumoroso في حقول النماذج التي يجب إدخال تاريخ فيها، بهدف تحسين تجربة المستخدم، مع زيادة التحكم في تنسيق البيانات في الوقت نفسه، يمكن تضمين تقويم عبر جافاسكربت. أعلم أنها كلمة ملعونة، لكن إذا تم ذلك بعناية وتحكم، فلا يجب أن يكون لها تأثيرات سلبية على المعايير وإمكانية الوصول. الأهداف في البداية حددت هدفين رئيسيين، وهما أكثر من كونهما أهدافًا كانا إرشادات عمل عند بنائه: أن يكون قابلًا للوصول وغير معيق. من الواضح أنه في غياب دعم جافاسكربت لا يتم تقديم خيار فتح التقويم، لكن إذا كان هناك دعم… لماذا لا نجعل المحتوى المُنشأ قابلًا للوصول وقابلًا للاستخدام؟ أن يكون سهل التنفيذ والاستخدام. بحثت عن طريقة بحيث لا يحتاج المبرمجون الذين يرغبون في تنفيذه في صفحاتهم إلى إدخال كود إضافي. كما هو الحال في CSS حيث تُستخدم أنواع مختلفة من المحددات (للعناصر، المعرّف، الفئات،…) لربط الأنماط بأجزاء مختلفة من مستنداتنا، لماذا لا نستخدم الشيء نفسه لربط السلوكيات؟ بالإضافة إلى ذلك، كأهداف ثانوية هناك: التحسين، التعميم، التدويل،… (وبواقعية، كان عليّ حذف هدفي التعارف وكسب المال.) تضمينه في مستنداتنا قبل كل شيء، أشير إلى أنه يمكن الحصول على السكربت مباشرةً عن طريق تنزيل المثال الكامل. تضمين التقويم في مستندنا بسيط مثل تضمين عنصر السكربت المقابل في الرأس: سيتم تحميل التقويم لأي حقل نصي يتضمن الفئة “fecha” (إذا كانت لغة المستند هي الإسبانية). يتم إدخال تنسيق التاريخ في السطر الأول من السكربت. وهكذا، إذا أردنا على سبيل المثال أن يتبع التاريخ الترتيب يوم/شهر/سنة، دون تضمين 0 قبل اليوم عندما يتكون من رقم واحد، وتضمينه في الشهر عند الحاجة، وأن يكون تنسيق السنة 4 أرقام: var formato = ‘d/mm/yyyy’; كما ذُكر سابقًا، لعرض التقويم بجانب حقل نصي، يجب أن يحمل هذا الفئة “fecha” إذا كانت اللغة المعلنة للمستند هي الإسبانية (“date” إذا كانت الإنجليزية، إلخ). يمكن تعديل أسماء الفئات هذه، وإضافة جديدة للغات أخرى، إلخ، مباشرةً في السكربت. بالإضافة إلى ذلك، تُدخل جميع المعاملات الممكنة كفئات. القائمة الكاملة هي كما يلي: تحميل التقويم (مطلوب): fecha التواريخ السابقة لليوم: prev التواريخ اللاحقة لليوم: post نطاق السنوات: rangX (حيث X هو عدد السنوات) لا يتم تضمين اليوم الحالي: todnact تطبيق مرشح للتواريخ المتاحة: disp وماذا لو حمّلت الحقول ديناميكيًا باستخدام AJAX؟ يتميز السكربت بأنه إذا أُدخلت حقول نصية جديدة في أي لحظة بشكل غير متزامن باستخدام AJAX، يكفي بعد هذا التحميل استدعاء الدالة cargaLinks() لربط الروابط الخاصة بفتح التقويم بالحقول. المثال الأول تاريخ مستقبلي، بتنسيق d/mm/yyyy، من هذه السنة ( class=“fecha post” ) تاريخ مستقبلي، بتنسيق d/mm/yyyy، من هذه السنة دون تضمين اليوم ( class=“fecha post todnact” ) تاريخ الميلاد، بتنسيق d/mm/yyyy، حتى 100 سنة ( class=“fecha prev rang100” ) تاريخ السنوات العشرين القادمة، بتنسيق d/mm/yyyy، دون تضمين اليوم ( class=“fecha post rang20 todnact” ) تاريخ السنوات الخمس عشرة الأخيرة، بتنسيق d/mm/yyyy ( class=“fecha prev rang15” ) تاريخ 10 سنوات إلى الوراء وإلى الأمام، بتنسيق d/mm/yyyy ( class=“fecha rang10” ) تحسين جديد (أبريل 2007) في بعض الأحيان قد نرغب في إدخال التاريخ في ثلاثة حقول نصية، واحد لكل بيانات يتكون منها. تمت إضافة إمكانية القيام بذلك. للقيام بذلك، سنستمر في التحكم بكل شيء من خلال استخدام الفئات المعينة للحقول. لكي تشكل مجموعة، يجب أن تضيف الحقول النصية الثلاثة كودًا يعرّفها على هذا النحو. هذا، الذي يبدو غريبًا نوعًا ما، ليس كذلك تمامًا. في الواقع، ما يجب فعله هو إضافة حرف أو رقم إلى كلمة fecha التي نستخدمها كفئة في الثلاثة. وهكذا، على سبيل المثال، يمكننا تطبيق الفئة “fechaA” على الثلاثة، وفورًا، بالإضافة إلى ربط الرابط الخاص بفتح التقويم، ستبدأ في التصرف كمجموعة. لاحقًا يتم تضمين مثالين يوضحان ذلك بوضوح. يجب أن يحمل كل حقل فئة وفقًا للبيان المرتبط به: لحقل اليوم الفئة ” day ” لحقل الشهر الفئة ” month ” لحقل السنة الفئة ” year ” هناك حرية تامة في الترتيب الذي توضع به، مع وضع فئات تكوين التقويم (عدد السنوات، السابقة، اللاحقة، إلخ) في أول الحقول المستخدمة. في المثال التالي يمكن ملاحظة طريقة القيام بذلك: المثال الثاني تاريخ السنوات العشر القادمة بتنسيق يوم، شهر، سنة: يوم / شهر / سنة اعتبار مهم هو إبلاغ المستخدم دائمًا عن الحقل المخصص لكل شيء. في المثال يتم الإبلاغ في النص السابق، بالإضافة إلى أن تسميات الحقول تتضمن ذلك. تاريخ السنوات الخمس عشرة الأخيرة بتنسيق سنة، شهر، يوم: سنة / شهر / يوم اعتبار مهم هو إبلاغ المستخدم دائمًا عن الحقل المخصص لكل شيء. في المثال يتم الإبلاغ في النص السابق، بالإضافة إلى أن تسميات الحقول تتضمن ذلك. تحديث (أبريل 2007) تم تعديل السكربت لتقليل الأنماط التي تُطبق منه. الآن، الرابط المُنشأ يحتوي على الصورة كمحتوى (سابقًا كانت تُحمّل من ورقة الأنماط). يتم إنشاء الرابط فورًا بعد الحقل (خارج التسمية إذا كان مدرجًا فيها) ويمتلك الترميز التالي:
في حالة كونه الرابط الخاص بتحميل التاريخ في ثلاثة حقول نصية، تصبح فئة الرابط ” enl_cal_group ، ويوضع هذا قبل أولها. تحديث (7 يوليو 2007) من
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