engineering-design-and-analysis
التصميم من أجل الوصول: الصوت والنوع الديناميكي في
Table of Contents
ومن الضروري تصميمها من أجل الوصول إلى المعلومات من أجل إيجاد تجارب رقمية شاملة لجميع المستعملين، ففي نظام iOS، تؤدي سمات مثل الصوتفر والنوع الديناميكي دوراً حاسماً في تعزيز إمكانية استخدام الأشخاص ذوي الإعاقة البصرية، وانخفاض الرؤية، وغير ذلك من الاحتياجات المتعلقة بإمكانية الوصول، ومن خلال الإدماج الفكري لهذه الأدوات، يمكن للمطورين والمصممين ضمان استخدام تطبيقاتهم من جانب جمهور أوسع، بمن فيهم أولئك الذين يعتمدون على التكنولوجيات المساعدة.
فهم الصوت
فصوت أوفر هو قارئ مبني في جهاز المراقبة الداخلية يقرأ بود كل ما يظهر على الشاشة، والعلامات، والصور، والشرائح، وحتى التغييرات في النص، ويتيح للمستعملين ذوي العاهات البصرية أن يبثوا الأجهزة والمواقع الشبكية ويستخدموا مجموعة غنية من الإيماءات والارتجاعات المسموعة، وعندما يلمس المستخدم أو يسحب أصابعاً عبر الشاشة، يصف فويس أوفر العنصر المختار في أي مكان.
ويعتمد الصوت على " إمكانية الوصول " (UIAccessibility) لاستخراج معلومات عن العناصر الشاشة، وكل مراقبة من طراز UIKit - ، ، ، والآراء المعتادة - يمكن أن تعرض بطاقات الوصول، وخصائصها، ورسومها، وإذا كانت هذه الأجزاء مفقودة أو غير مجهزة على نحو فعال، فإن هذه الأجزاء غير قابلة للفحصها.
وعند تصميم نظام فويس أوفر، ينبغي للمطورين أن يكفلوا وضع علامات مناسبة على جميع العناصر التفاعلية وتيسير الوصول إليها عن طريق نظام المعلومات المسبقة عن إمكانية الوصول، ولا يشمل ذلك الضوابط المحلية فحسب، بل يشمل أيضاً الوصلات البينية المصممة حسب الطلب، والمميزات ذات الصبغة، والمحتوى الدينامي، ويفترض الخطأ المشترك أن العلامات غير المستقرة من محتوى النصوص كافية، ويمكن للمنشور أن يقرأ نوع الرقابة الأساسية أو علامة تعريف خام، وهو ما هو مفيد دائماً.
مسارات الوصول الرئيسية
(أ) يوفر نظام iOS مجموعة من [(FLT:0]] صفات الوصول () التي تبلغ فويس أوفر بسلوك عنصر ما.
- Button] - يشير إلى أن العنصر يمكن الضغط عليه لأداء عمل.
- Header] - marks a section heading, allowing users to jump between headings quickly.
- StaticText] - يُخبرُ VoiceOver بأن العنصر يُقرأ نصاً مقتبساً.
- Adjustable] - للضوابط مثل الشرائح أو الخيوط التي تسمح بإيرادات الزيادة/النقصان.
- Selected] - يشير إلى أن العنصر في ولاية مختارة (مثلاً، جدول).
- Link] - بالنسبة للعناصر المشابهة لليورانيوم التي تفتح عنواناً على شبكة الإنترنت.
وتطبيق الصفة الصحيحة لا يؤدي إلى تحسين الناتج المسموع فحسب بل يغير أيضاً الإيماءات التي تم توفيرها للمستعمل، فعلى سبيل المثال، فإن عنصراً مع [(FLT:0]] [الرسم البياني] يسمح للمستعمل بأن يرتجف أو يقلل من قيمة هذا الناتج، وبدونه، سيعتبر الصوت أوفر عنصراً ثابتاً معيارياً.
الوصول إلى العواصم والإجراءات العرفية
وفي بعض الأحيان لا يكفي وضع علامة وسمة، ويمكن أن توفر التلميحات المتعلقة بإمكانية الوصول سياقا إضافيا بشأن نتيجة إجراء ما، مثل " فتح لوحة الإطارات " أو " حذف البند الحالي " . ولا يُنطق النعناع إلا بعد تأخير قصير عندما يُستخدم المستعملون على عنصر ما، بحيث لا يُستخدم إلا بصورة متفرقة عندما لا يكون السلوك واضحا من العلامة وحدها.
وبالنسبة للعناصر التي تدعم الإجراءات المتعددة (مثل خلية طاولة يمكن أن تُكشف عن الحذف والتقاسم والاختباء) تستخدم إجراءات معكوسة . ويعلن فويس أوفر عن عدد الإجراءات المتاحة ويسمح للمستعمل بأداءها عن طريق التصفح أو الهبوط في دوار مكرس، ويجعل تنفيذ إجراءات العرف المعقد من الممكن الوصول إليها دون أن يكتشف المستعملها.
دعم الصوت المنفذ
ولدعم نظام الصوتيفر بفعالية، النظر في أفضل الممارسات التالية، وهي ليست مجرد مبادئ توجيهية - فهي ضرورية لإنجاح عمليات مراجعة إمكانية الوصول ولخلق تجربة منصفة.
- ]Use descriptive labels for blues, links, and controls. A blue labelled “Save” is acceptable; better is “Save document” or “Save draft”. Avoid general labels like “button” or “item 1” For icons without visible text, set the accessibility label to describe the action, econ.
- Ensure that all images have meaningful alt text.] Decorative images that do not convey information should be marked as so VoiceOver ignores them. Informative images, like a chart or product photo, need a brief description. Don't forget to update images in and6
- testing navigation using VoiceOver gestures] to identify potential issues. Turn on VoiceOver in Settings ⁇ Accessibility ⁇ VoiceOver and try completing all core tasks in your app without looking at the screen.
- Usese accessibility traits] to define the purpose of UI elements. For example, set on section titles, and on tappable elements.
- Group related elements] using container views with and a combined label. For instance, a card showing a product image, name, and price should be one accessible element with a label like “Wireless headphones, $79.99”.
- Post accessibility notifications] when content changes dynamically. Use to focus VoiceOver on updated content, such as a new message in a conversation or a modal that appears.
- Avoid relying solely on colour or visual cues] to convey state. VoiceOver users cannot see red mistake borders. always combine visual indicators with text, symbols, or traits like .
- Support accessibility rotor] operations when appropriate. For example, if your app includes a slipr for volume, implement the Adjustable]] trait and exposeement and decrement actions via the rotor.
الشوارع الصوتية المشتركة
وحتى المطورين ذوي الخبرة يمكن أن يتجاهلوا القضايا الخفية، وهنا توجد مشاكل متكررة تُشاهد:
- Over unknown‐nested accessible elements]: إذا كان من الممكن الوصول إلى رأي الوالدين وأبنائه أيضاً، سيعلن فويس أوفر الوالد وبعد ذلك كل طفل، مما يسبب الارتداد والارتباك، إما أن يجعل الوالد الوحيد الميسر أو أن يضمن إخفاء الأطفال على النحو الصحيح.
- ] Improperly handled scroll views: VoiceOver depends on the scroll view’s content size. If the content size is not correctly set, VoiceOver may not scroll through all elements.
- Missing accessibility identifiers: While accessibility identifier (]) is primarily for automated testing, it should not be used as the label for VoiceOver. always provide a separate for human —waterable output.
- Ignoring keyboard commands: Some users combine VoiceOver with an external keyboard. Ensure your app responds to common keyboard shortcuts (e.g., Cmd+S for Save) and that these actions are discoveredable via the accessibility rotor.
فهم النوع الديناميكي
ويتيح النوع الدينامي للمستعملين تكييف حجم النص عبر النظام على نطاق المنظومة، وتحسين القدرة على القراءة والراحة بالنسبة للأشخاص ذوي الرؤية المنخفضة أو البظرية أو الذين يفضلون النص الأكبر، وعندما يضبط المستخدم حجم النص في " ستينغز " ، أو يستعمل الحجم القصير، فإن أي جهاز يدعم نوع الديناميكية سيزيد من نصه تلقائياً.
Dynamic Type is built on the concept of text fashions defined by . iOS provides a set of predefined fashions: , , [FLT lay:17], , [FLT scaling], , type]
وعند تصميمها من أجل النوع الديناميكي، ينبغي للمطورين أن يكفلوا مقياس النصوص بشكل سليم وأن يتكيف التصميم دون كسر أو تداخل أو تلف المحتوى بطرق غير مرغوب فيها، وهذا يتجاوز النص نفسه: الهامش، والرعي، وشعر الازرار، وحتى أحجام الصور قد تحتاج إلى التكيف للحفاظ على نظرة متسقة على كل حجم.
The Content Size Categories
ويعرف نظام iOS عدة مستويات من حجم النص تتراوح بين [(FLT:0]XS] (الصغيرة) و]XXXL) (الحجم الخارجي) (الحجم الخارجي الذي تم اختباره) (الحجم المميز مقارنة بـ AX1[الحجم المتطرف]) مصممة خصيصاً للمستخدمين ذوي الإعاقة البصرية.
لا يحتاج كل النص إلى أن يكون كبيراً بشكل متساو، عادةً، ينمو نص الجسم أكثر، بينما قد تُضخّم العبوات الصغيرة أو ألقاب الزر بشكل أقل عدوانية، فصفة تعطيك سيطرة مُحكمة على رفع السلوك للذكورات العادية التي لا ترتبط بأسلوب النص.
تطبيق النوع الديناميكي
ولدعم النوع الديناميكي بفعالية، اتبع هذه الممارسات، وهي تكفل احترام تطبيقك لأفضليات المستعملين وتتصرف على نحو متوقع عبر جميع سلاسل النصوص.
- Usese text fashions that automatically adapt to user settings], such as , , etc. In Interface Builder, you can set the font to a text fashion in the Attributes inspector. In code, use .
- تجنب أحجام ثابتة مائلة ؛ بدلاً من ذلك، تعتمد على ملصقات قابلة للتكرار، وإذا استخدمتم ملصقاً مصمماً حسب الطلب، سجلوه ثم أنشأه بـ لتطبيق نفس منحنى التصعيد الذي يصفه النظام.
- (]) تختبر تطبيقك مع مختلف أطر حجم النص ] في خيارات الوصول، وتذهب إلى وضع ⁇ إمكانية الوصول إلى النص Size ⁇ Larger Text من أجل التمكين من الحصول على أحجام، ثم تبحر عبر كل شاشات تطبيقك، مع إيلاء اهتمام خاص للأزرار التي يتم تطهيرها، والصور المتداخلة، والترجمة النصية.
- ضمان أن يظل تصميمك مرناً ويمكن قراءته على جميع الأحجام . Use Auto Layout constraints that adapt to content size rather than fixed widths. For example, a label should have leading and tracking constraints to its superview, not a fixed width, so it can grow and wrap. Use to allow multiline text.
- Adjust line altitude and paragraph spacing dynamically. The default line altitude for text fashions is appropriate, but if you use attributed strings, ensure you set relative to the font size.
- Use ] for custom fonts: ensures your font scales similarly to the system body font.
- For images or icons that accompany text], consider providing multiple resolutions or using SVG so that they scale without pixelation. An icon that sits beside a label might need to grow when the text grows. You can use asset catalogs with size -specific images or scale images using with text fashion.
- Update layouts when Dynamic Type changes at runtime]. Register for the ] notification to invalidate your layout and recalculate sizes. If using , the system automatically calls trait collection update; however, custom views may need explicit handling.
معالجة النوع الديناميكي في الجدولين الآراء والآراء المتعلقة بجمع البيانات
Dynamic Type can complicate list views if cell altitudes are fixed. The solution is to use self---ofizing cells that compute their intrinsic altitude based on the content. Set estimated row altitude and allow Auto Layout to expand cells. For , set and provide a reasonable For [FLits accounting:40]
حجم القدرة على الوصول والأداء
ويمكن أن يصبح النص كبيرا جدا في حجم الوصول، وقد لا تتضمن الخلية إلا بضع كلمات، وهذا مقبول ومتوقع في أجهزة الثرثرة أو الاخبار، غير أنه في الشبكات الكثيفة البيانات )مثلا، نظرة شهرية تقويمية(، يمكن أن يكسر النص، وفي هذه الحالات، قد تختارون الحد الأقصى لحجم النص بالنسبة لذلك الرأي المعين أو أن تقدموا مخططا بديلا للميثاق.
ويمكن أن يكون تقدير الأداء الآخر: توسيع الصور في وقت العمل مكلفاً، وإذا قدمتم مختلف أحجام الصور لمختلف فئات حجم المحتوى، فإنكم لا تحملون إلا القرار المطلوب.
الوصول إلى ما بعد الصوت والنوع الديناميكي
وفي حين أن الصوت والأنواع الدينامية هما من أكثر السمات تأثيراً في مجال الوصول إلى خدمات تكنولوجيا المعلومات، فإنهما ليسا الوحيدين، كما أن استراتيجية شاملة لتيسير الوصول تشمل الدعم لما يلي:
- Switch Control] - بالنسبة للمستعملين ذوي السيطرة المحدودة على السيارات.
- AssistiveTouch] - أزرار ولفتات افتراضية للمستعملين الذين لا يستطيعون أداء بعض الحركات المادية.
- Voice Control] - الملاحة الكاملة القائمة على الصوت (مختلفة من الصوت).
- Reduce Motion] – for users sensitive to animations.
- Increase Contrast] and ] Button Shapes - for better visual clarity.
- Closed Captions and ] Audio Descriptions - for media content.
وكل من هذه السمات يتفاعل مع تطبيقك بطرق محددة، فعلى سبيل المثال، تعمل العناصر التي تدعم الإجراءات الجمركية في فويس أوفر أيضا مع هيئة مراقبة السوارق، وضمان أن يكون كل عنصر تفاعلي هدفاً كاملاً للمسدسات (على الأقل 44 نقطة) يستفيد منه جميع المستخدمين، ولا سيما أولئك الذين يعانون من إعاقة في السيارات، ويعني تصميمه على الوصول إلى المعلومات من البداية أن تطبيقك سيعمل بشكل جيد مع جميع هذه التكنولوجيات المساعدة، وليس فقط VoiceOver وDynamic Type.
خاتمة
فالتصميم مع إمكانية الوصول في الاعتبار لا يعود بالفائدة على المستعملين ذوي العاهات فحسب بل أيضاً يحسن خبرة المستخدمين عموماً بالنسبة للجميع، كما أن الصور مثل الصوتية والنوع الديناميكي ناضجة وموثقة جيداً وبسيطة نسبياً لتنفيذها بمجرد أن تفهموا المعايير الأساسية، وبإدماج دعم الفوسوف مع العلامات والخصائص المناسبة وإجراءات العرف، وباعتماد أنواع الديموغرافيا من خلال أدوات التكييف المتناظرية المرنة.
For further reading, consult the Apple Human Interface Guidelines on Accessibility], the ]Dynamic Type documentation, the VoiceOver developer resources, and the W