civil-and-structural-engineering
بناء مخطوطة عرفية
Table of Contents
The Challenge of Date Input on the web
اختيار التاريخ هو أحد أكثر التفاعلات شيوعاً وإن كان محبطاً على الشبكة، ويختلف ملتقطو التاريخ الأصليون اختلافاً جذرياً عبر المنصات، ويتيح المعيار مراقبة محدودة للطباعة والسلوك غير المتجانس للوحة الرئيسية، ويمنحكم تركيب ملتقط تاريخ محدد السيطرة الكاملة على المظهر والسلوك وإمكانية الوصول، وعندما يتم ذلك بشكل صحيح، يصبح عنصراً شاملاً يخدم المستخدمين بغض النظر عن أسلوبهم في استخدام الأجهزة أو مدخلاتهم أو المساعدة.
ولا يتعلق الأمر بموقع اختيار التاريخ المتاح بالامتثال للمبادئ التوجيهية للمجموعة، بل يؤثر مباشرة على المستعملين الحقيقيين: الأشخاص الذين يبحرون مع لوحات المفاتيح، والأشخاص الذين يعتمدون على أجهزة الشاشة، والأفراد الذين يعانون من إعاقة في السيارات الذين يستخدمون أجهزة التبديل، وأي شخص يستفيد من أدوات بصرية واضحة، فالتقنيات المشمولة هنا تنطبق على أي إطار من إطار جافاسكريبت، ولكن الأمثلة تستخدم الفانيلا جافاسكريبت حتى تتمكن من تكييفها مع البيئة الأخرى، فيو.
مؤسسة الوصول إلى الملصقات
فهم المعايير الناجحة لرابطة أمم جنوب شرق آسيا
ACAG 2.1 success criteria directly apply to date pickers. Keyboard accessibility] (SC 2.1.1) requires that all functionity be operable through a keyboard interface. ]Focus visible (SC.4.7) demands a clear focus indicator so users know which date is selected.
Smantic HTML as the Backbone
(أ) البدء بعناصر من نظام HTML بدلاً من العناصر العامة [(FLT:1]) وينبغي أن تستخدم الشبكة التقويمية عنصراً لأنه يمثل بيانات من الناحية الافتراضية، وينبغي أن تكون كل خلية من هذه المواد عنصراً ، وهو عنصر يمكن التركيز عليه تلقائياً ويمكن التصرف فيه عن طريق لوحة مفاتيح.
المصممة حسب الميعاد
العناصر المشتركة بين أوجه المستعملين الأساسيين
ويحتاج مختار تاريخ كامل إلى هذه المكونات البصرية والوظيفية:
- مجال مدخلات نصية يظهر التاريخ المختار ويحفز التقويم
- ظهور تقويمي يحتوي على رأس شهر/سنة، وأزرار الملاحة لأشهر متغيرة، وشبكة أيام
- اليوم هو تاريخ مُبرز بشكل مرئي للتوجه
- التاريخ المختار بوضوح مع نمط متميز
- زر واضح أو مفتاح الهروب لصرف التقويم دون اختيار
إدارة الدولة
وعلى الصعيد الداخلي، يجب أن يتتبع ملتقط التاريخ عدة أجزاء من الدولة: التاريخ الذي يركز حاليا (الذي قد يختلف عن التاريخ المختار)، والشهر والسنة المرئيين، والقيمة المختارتين، وما إذا كان البوب التقويمي مفتوحا أو مغلقا، وأن يحافظ على هذه المتغيرات كمتغيرات في جافاسكريبيه، وأن يستكمل خصائص إدارة الشؤون الإدارية والرابطة استجابة للتغييرات الحكومية، وأن فصل الدولة عن جعل العنصر أسهل من أن ينهار أو يمتد بأشهر متعددة.
بناء هيكل HTML للاطلاع على إمكانية الوصول
مجال المدخلات
مجال المدخلات هو نقطة التفاعل الرئيسية للمستعملين يجب أن يتواصل هدفه وعلاقته مع البوب التقويمي باستخدام خصائصه
Accessible input example:]
<label for="date-picker-input">Departure date</label>
<input type="text"
id="date-picker-input"
role="combobox"
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="datepicker-calendar"
aria-autocomplete="none"
readonly
placeholder="MM/DD/YYYY">
يشير نمط إلى التكنولوجيات المساعدة التي تتحكم هذه المدخلات في البوب، ويُعزى ] إلى ما إذا كان الجدول مرئياً بصورة دينامية، ويمنع إدخاله كـ يدوياً مع السماح بالتركيز على لوحة المفاتيح والتظاهرات.() وبالنسبة للتنفيذات التي تسمح بتحديد التاريخ المباشر، يضاف منطق التصديق و[إدارة الدولة:9]
The Calendar Dialog
ويتبع الجدول الزمني نمط [(FLT:0)] ] من ممارسات الترخيص التي تتبعها الوكالة، وينبغي أن يصبح بمثابة أخ إلى ميدان المدخلات في إدارة الشؤون الإدارية، الذي يغلب عادة في حاوية تتولى تحديد المواقع:
<div id="datepicker-calendar"
role="dialog"
aria-modal="true"
aria-label="Choose a date"
hidden>
<div class="calendar-header">
<button class="prev-month" aria-label="Previous month">‹</button>
<h3 id="calendar-month-year" aria-live="polite">January 2025</h3>
<button class="next-month" aria-label="Next month">›</button>
</div>
<table class="calendar-grid" role="grid" aria-labelledby="calendar-month-year">
<thead>
<tr>
<th scope="col"><abbr title="Sunday">Sun</abbr></th>
<th scope="col"><abbr title="Monday">Mon</abbr></th>
<th scope="col"><abbr title="Tuesday">Tue</abbr></th>
<th scope="col"><abbr title="Wednesday">Wed</abbr></th>
<th scope="col"><abbr title="Thursday">Thu</abbr></th>
<th scope="col"><abbr title="Friday">Fri</abbr></th>
<th scope="col"><abbr title="Saturday">Sat</abbr></th>
</tr>
</thead>
<tbody>
<!-- Date rows rendered dynamically -->
</tbody>
</table>
<div class="calendar-footer">
<button class="today-button">Today</button>
</div>
</div>
The on the table provides optimized navigation for screen readers within tabular layouts. each date cell should be a ] element with the explicitly applied if using a non-semantic element. The region on the month/year heading ensures screen readers month changes without interrupting the user.
تنفيذ لوحة المفاتيح
استراتيجية الإدارة
عندما يفتح الجدول، ينتقل التركيز إلى التاريخ المختار حالياً، أو إلى تاريخ اليوم إذا لم يكن هناك اختيار، وهذا يتبع نمط
محطة تحديد المواقع الرئيسية
(أ) يحدد نمط شبكة ARIA خرائط رئيسية موحدة للمحتوى الافتراضي الملاحي:
- Arrow keys] move focus one day in the corresponding direction. When focus moves beyond the current month, the appendix automatically shifts to the adjacent month.
- Home and End] move focus to the first or last day of the current month.
- Page Up and Page Down ] navigate to the previous or next month while maintaining the day of the month (clamped to the last day of the target month if needed).
- Enter or Space] selects the currently focused date and closes the timetable.
- Escape] closes the timetable and returns focus to the input field.
- Tab] moves focus within the dialog components (month navigation blues, grid, today blue).
إدارة التابكات المتجول
(د) استخدام نمط [الارتجال] ] في شبكة التاريخ، ولا يوجد سوى زر واحد تاريخي في أي وقت، في حين أن جميع أزرار التاريخ الأخرى لها ، وهذا يضمن دخول تاب للشبكة مرة أخرى وإلحاز تاب مرة أخرى إلى العنصر التالي الذي يمكن التركيز عليه خارج الشبكة(17).
ARIA Attributes for Screen Reader Support
إدارة الدولة
يعتمد القراء المرتدون على خصائص الوكالة في الإبلاغ عن التغييرات في الدولة، وتحديث هذه الخصائص في الوقت الحقيقي عندما يتفاعل المستخدم مع مختار التاريخ:
- aria-expanded] on the input: set to when the timetable opens, when it closes.
- aria-hidden] on the appendix dialog: remove () when visible, add (]) when hidden.
- aria-selected] on the selected date blue: set to on the selected date, ] on all others. Note that blues natively support a pressed state, but is the correct attribute for gridcell roles.
- ]------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- aria-label] on each date blue: include the full date, such as "January 15, 2025" rather than just "15".
إعلان التغيرات الطارئة
وعندما ينتقل المستخدم إلى شهر جديد، يعلن الشهر والسنة باستخدام منطقة حية، ويستكمل العديد من التنفيذ على جهاز الاتصال أو استخدام منطقة مخبأة بصريا ]، وعندما يتم اختيار تاريخ، يعلنون " كانون الثاني/يناير 15 و 2025 " تأكيد الإجراء.
تفاصيل التنفيذ
الاستهلالية والتسويق
إنشاء فئة أو وظيفة مصنع تواريخ تقبل خيارات التشكيل: عنصر المدخلات، وشكل التاريخ، والحد الأدنى والحد الأقصى، ووظائف الاسترجاع لاختيار التاريخ، والبدء في إنشاء مستمعين للمناسبات على أساس المساهمة، وإصدار الشهر التقويمي الأولي:
class AccessibleDatePicker {
constructor(input, options = {}) {
this.input = input;
this.options = Object.assign({
format: 'MM/DD/YYYY',
minDate: null,
maxDate: null,
onDateSelect: () => {}
}, options);
this.selectedDate = null;
this.focusedDate = null;
this.currentMonth = new Date().getMonth();
this.currentYear = new Date().getFullYear();
this.isOpen = false;
this.calendar = this.buildCalendarElement();
this.setupEventListeners();
}
// ... methods
}
"التلاعب بـ "الغريدان
وتحسب وظيفة الفرز في اليوم الأول من الشهر، وعدد الأيام في الشهر، وأي أيام مقتطفة من الشهرين السابقين والقادمين لملء الشبكة، ويتلقى كل زر بيانات عن عناصر التاريخ، وتاريخ [(FLT:31] مع التاريخ الذي يمكن فيه قراءة الإنسان:
renderMonth() {
const firstDay = new Date(this.currentYear, this.currentMonth, 1).getDay();
const daysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();
const daysInPrevMonth = new Date(this.currentYear, this.currentMonth, 0).getDate();
let cells = [];
// Add trailing days from previous month
for (let i = firstDay - 1; i >= 0; i--) {
cells.push(this.createDateButton(daysInPrevMonth - i, this.currentMonth - 1, this.currentYear, true));
}
// Add days of current month
for (let day = 1; day <= daysInMonth; day++) {
cells.push(this.createDateButton(day, this.currentMonth, this.currentYear));
}
// Add leading days of next month
const remaining = 42 - cells.length; // 6 rows × 7 columns
for (let day = 1; day <= remaining; day++) {
cells.push(this.createDateButton(day, this.currentMonth + 1, this.currentYear, true));
}
// Render into table body...
}
مناسبة وفد وحدة الديناميكية
وبدلاً من إرفاق مستمعين الأحداث بكل زر على حدة، واستخدام وفد الأحداث على حاوية الشبكة، والاستماع إلى أحداث على عنصر وتحديد التاريخ الذي تم نقره باستخدام [(FLT:35]) ويعالج هذا النهج التواريخ التي تولدت دينامياً دون إعادة إرسال المستمعين ويقلل من استخدام الذاكرة.
التاريخ:
وعندما يختار المستخدم تاريخاً، يُشكل المكوّن التاريخ وفقاً للشكل الموحّد، ويُحدّث قيمة المدخلات، ويخزن التاريخ المختار داخلياً، ويُسمي ] الاسترجاع، وبعد الاختيار، يغلق الجدول ويركّز على المدخّلة، ويُحدّد مُحدّد على الخلية المختارة سابقاً [الرمز:39]
وضع تصورات بشأن إمكانية الوصول
الاستقلالية للمحتضين والكولور
لا ينبغي أن يكون اللون هو المؤشر الوحيد للدولة، إذ يستخدم مزيجاً من لون المعلومات الأساسية، ولون النص، والحدود، وتزيين النصوص لإبلاغ دول مختارة ومركزة، ومعاقة، ويحافظ على نسبة دنيا من التناقض تبلغ 3-1 للمحتوى غير الوارد و4:1 للمحتوى النصي لكل من الكيميائيين SC 1.4.3 و1.4.11.
تصميم مؤشرات التركيز
ويجب أن يكون مؤشر التركيز واضحاً ضد جميع العناصر المحيطة، واستخدام أو مع ما يكفي من السميك والمقارنة، وتجنب إزالة مخطط المصفوفات الافتراضية دون توفير بديل، ويظل مخطط صلب ثلاثي الأبعاد مقارناً باللون الذي يتناقض مع الخلفية المتخلفة وخلفية الدولة المختارة يؤكد وضوحه.
Touch Target Sizing
وينبغي أن يكون لكل زر من زر التاريخ هدف الحد الأدنى لمسة 44x44 من أكياس الأشعة المقطعية، على نحو ما أوصى به الفريق العامل المعني بالسواتل 2-5-8، وينطبق ذلك على الأجهزة المحمولة، والأقراص، والمستعملين ذوي السمعة المنخفضة الذين قد يستخدمون مدخلات اللمس أو البلازموس، وضمان أن تكون أزرار الملاحة الشهرية والزرارة اليوم أيضاً ذات الأبعاد الدنيا، وإذا كانت القيود الفضائية تتطلب أهدافاً أصغر، أو توفر الرعي البصري أو تزيد المساحة القابلة للنقر باستخدام
اختبار تاريخك للسماح
اختبار لوحة المفاتيح
اختبار العنصر باستخدام لوحة مفاتيح فقط، وفتح الجدول الزمني مع Enter or Space، وبحر عبر جميع التواريخ باستخدام مفاتيح السهم، والتحقق من أن الهروب يغلق الباب ويركّز على المدخلات، والتأكيد على أن مؤشر التركيز واضح في جميع الأوقات وأن ترتيب التركيز يتبع المخطط البصري، والاختبار مع الصفحة الأعلى، والصفحة السفلية، والداخلية، ومفاتيح الوثيقة النهائية لضمان أداء الملاحة المتوقعة في الشهر والنهار.
اختبارات القراء المرتجلة
اختبار مع قارئين على الأقل من الشاشة: مجموعة من NVDA] (خالية) مع فوكس و]JAWS (التجارة) مع Chrome تغطي أغلبية مستخدمي الشاشة.
أدوات الاختبار الآلية
In use automated tools like axe DevTools] or ]Lighthouse] to catch common accessibility issues. These tools can identify missing ARIA attributes, insufficient color contrast, and missing labels. However, automated testing cannot detect all issues. Manual testing remains essential for evaluating flower
اعتبارات التكامل العالمي الحقيقية
التدويل والانتقال إلى المواقع
دعم عدد من السكان المحليين باستخدام اسماء API لتشكيل التواريخ وأسماء الشهر، والسماح بتشكيل أول يوم من الأسبوع (Sunday vs Monday) على أساس محلي.
اللمس والتصويب
وفيما يتعلق بالأجهزة المحمولة، وضع رقم الهاتف التقويمي لتجنب التداخل مع لوحة المفاتيح الافتراضية، والنظر في استخدام طريقة الشاشة الكاملة للتقويم على الشاشات الصغيرة، مع تخصيص كامل المشهد للوصلة البينية للاختيار، وتنفيذ لفتات لشهر الملاحة كتعزيز تدريجي، وإجراء اختبارات على الأجهزة النقالة الفعلية مع مدخلات القراء المؤثرة والشاشة للتأكد من أن أهداف اللمس كبيرة بما فيه الكفاية وأن إجراءات الإيماءات قد وصلت إلى الانخفاضات.
الأداء وحجم العظام
ولا ينبغي أن يُبطل مُختار التاريخ تطبيقك، ولا يُبقي رزمة الـ(جافاسكريبت) تحت 10 كيلوبايت مُنقَّحة ومُضَعَلة بتجنب المعالَم غير الضرورية وكتابة كود فعّال، ولا يستخدم عمليات الإغلاق ووظائف المصانع لتجنب الإرث العام، ولا يُستهلَّل الجدول إلا عندما يفتح المُستعمل المُلتقط أولاً، بدلاً من وضعه على حمول من الصفحات.
معالجة قضايا إدج
المعاقون والمقيدون
(ج) تنفيذ مهمة تُدقق في التواريخ الدنيا/الضرائب، والقيود اليومية للأسبوع، وقواعد الاستبعاد العرفي؛ وينبغي أن تتلقى تواريخ الإعاقة وأن تُستبعد من الملاحة الرئيسية؛ وينبغي أن تستخدم التواريخ المعاقة في العادة تقليل الظلم وتفادي آثار الهواية؛ وعندما يُستخدم المخالفون في الشبكة، يُصبحون متواريخ غير متاحين تماماً.
قيم متعددة وإجراءات واضحة
دعم إزالة التاريخ المختار من خلال توفير زر واضح داخل الدرج التقويمي أو السماح للمستعمل بإعادة إحياء التاريخ الذي يتم اختياره حالياً، وعندما لا يتم اختيار التاريخ، ينبغي لمالك المدخلات أن يتصل بالشكل المتوقع، وينبغي أن يفتح الجدول الزمني لعرض الشهر الحالي دون إبراز تاريخه، ولكن مع التركيز على تاريخ اليوم بالنسبة للتوجه، ويستمر في الشهر الأخير الذي يتم اختياره حتى يعود المستخدم إلى الشهر الذي كان ينظر فيه سابقاً.
الحشد والقابلية للاختراق
(د) اختبار الملتقط عبر الكروم، وفايفوكس، وسفاري، وإدج، وإيلاء اهتمام خاص لسافاري، التي كانت لها تاريخياً دعم مؤشرات التركيز غير المتسق . () لتوفير مؤشرات التركيز فقط عندما ينتقل المستخدم عبر لوحة مفاتيح، ويتجنب المخططات الدائمة للتفاعلات النقرية، [Fact-51].
وضعه معاً
ويبنى ملتقط التاريخ الميسر على أساس نظام HTML، وإدارة دقيقة لنظام المعلومات الإدارية المتكامل، ومناولة قوية للسيارات الرئيسية، ويستخدم المدخلات في الميدان أجهزة الترميز في شكل جهاز مدمج لإرسال علاقتها بالرقم التقويمي، وتتتبع شبكة التواريخ نمط التبويب المتحرك من أجل كفاءة الملاحة الرئيسية، وتُعزو الوكالة بصورة دينامية لتعكس مؤشرات التركيز الحالية، وتتلقى أجهزة قراءة الشاشة إعلانات عن السياقات من خلال مناطق حية، وتحافظ على التركيز.
إن مقياس النجاح الحقيقي ليس كم من خصائص الوكالة التي تضيفها، ولكن كيف لا تبشر التجربة بمستعملي التكنولوجيا المساعدة، كما أن المختار الذي يبني جيداً ينبغي أن يشعر بأنه طبيعي لمستخدم لوحة المفاتيح كما هو الحال بالنسبة لمستخدم الفأر، وباتباع الأنماط الموصوفة هنا والاختبار الدقيق بالتكنولوجيات المساعدة الحقيقية، فإنكم تخلقون عنصراً يخدم الجميع.
إن إمكانية الوصول ليست سمة للنجاح أو خطوة صاعقة نهائية، فهي جزء لا يتجزأ من عملية التصميم والتطوير، وعندما تبنى مع إمكانية الوصول منذ البداية، تتجنب إعادة تكييف التكاليف وتعطي خبرة أفضل لجميع المستعملين، ومختار التاريخ هو مجرد عنصر واحد، ولكن المبادئ التي تطبقها هنا تشمل كل عنصر تفاعلي تبنيه.