באינטראקציה עם האפליקציה, המשתמשים לרוב משתמשים במנגנוני קלט שאינם מגע:
- סביבות מחשב: המשתמשים מנווטים ומזינים נתונים באמצעות מקלדות חומרה ומשטחי מגע פיזיים.
- Android TV: המשתמשים מנווטים בממשק באמצעות כפתורי החיצים (D-pad).
- רכב: נהגים ונוסעים יכולים ליצור אינטראקציה באמצעות בקרים סיבוביים.
- מכשירים מתקפלים וטאבלטים: משתמשים מחברים כיסויי מקלדת ואביזרים חיצוניים לקלט.
בכל התרחישים האלה, האפליקציה צריכה לעקוב אחרי הרכיב האינטראקטיבי שפעיל במסך – המצב הפעיל הזה נקרא מיקוד.
גורמים חשובים לניווט אינטואיטיבי באמצעות המקלדת
כדי לספק חוויית משתמש מעולה במסכים גדולים ובמכשירים ללא מסך מגע, כדאי לעצב את האפליקציה לפי העקרונות הבאים:
- מיקוד ראשוני הגיוני: המיקוד הראשוני צריך להיות על הרכיב שהמשתמשים צפויים לקיים איתו אינטראקציה כשהם נכנסים למסך.
- סדר ניווט עקבי: צריך לספק מעבר צפוי בין רכיבים באמצעות התמקדות חד-ממדית (Tab) ודו-ממדית (מקשי החיצים או לחצני הכיוון).
- מיקוד מתמשך: שחזור המיקוד בצורה חלקה אחרי הפרעות, סגירת תיבות דו-שיח או שינויים בהגדרות.
- מצב מיקוד ברור: הצגת רמזים ויזואליים בולטים ונגישים (כמו טבעות או אדוות של מיקוד) שמציינים איזה רכיב נמצא כרגע במיקוד.
- גלילה אינטואיטיבית: מוודאים שהרכיב הממוקד וההקשר שמסביבו נגללים בצורה חלקה לאזור התצוגה הגלוי.
מדריכים לשיפור הריכוז
במדריכים הבאים מוסבר איך לנהל ולהתאים אישית את המיקוד ב-Compose:
- יעדי מיקוד: במאמר הזה מוסבר איך רכיבים אינטראקטיביים הופכים ליעדי מיקוד ואיך להגדיר רכיבים בהתאמה אישית כרכיבים שניתן להתמקד בהם.
- סדר מעבר בין רכיבים: הסבר על סדר המעבר בין רכיבים במראה תלת-ממדי ועל ניווט מרחבי דו-ממדי, ואיך להתאים אישית את נתיבי המעבר.
- התמקדות בשדות טקסט: הסבר על האופן שבו שדות טקסט של שורה אחת ושדות טקסט של כמה שורות מטפלים במקש Tab ובמקשי החיצים, ועל האופן שבו פועלת האינטראקציה עם IME בטלוויזיה.
- קיבוץ יעדי המיקוד: קיבוץ רכיבים באמצעות
focusGroupוחסימת הפניה אוטומטית בכניסה או ביציאה. - Restore focus: שחזור המיקוד לילדים שהיו פעילים בעבר ב-containers, טיפול ברכיבי ניווט וניהול המיקוד במעברים בין מסכים.
- הצגת מצב המיקוד: חשוב להשתמש ברמזים חזותיים ובהצגה מותאמת אישית כדי להדגיש רכיבים ממוקדים.
- React to focus: Observe focus changes and query focus state properties
using
onFocusChanged. - בקשת מיקוד באופן פרוגרמטי: העברת המיקוד באופן מפורש בתגובה לפעולות של המשתמשים או לשגיאות אימות.
- העברה וביטול של המיקוד: אפשר להעביר או לבטל את המיקוד באופן פרוגרמטי באמצעות
FocusManager. - לכידה ושחרור של המיקוד: לכידת המיקוד לאינטראקציות משניות של חלון מודאלי ושחרור בטוח שלו.
- בדיקת הניווט באמצעות המיקוד: כותבים בדיקות אוטומטיות של כתיבת הודעות כדי לוודא את האינטראקציות של המקלדת עם שדות הטקסט במימד אחד, בשני מימדים ובשלושה מימדים.
מומלץ בשבילכם
- הערה: טקסט הקישור מוצג כש-JavaScript מושבת
- יעדי התמקדות
- סדר מעבר בין רכיבים
- התמקדות בשדות טקסט
- קיבוץ יעדים להתמקדות
- בדיקת ניווט באמצעות מיקוד