התכונה 'נגיעה לחיפוש' הושקה ביוני 2015 ב-Chrome 43 לרוב הטלפונים עם Android. כשהמשתמש מקיש על טקסט בדף כלשהו ב-Chrome, המילה נבחרת יחד עם הטקסט הרלוונטי שמסביב. מונח החיפוש מופיע בסרגל בחלק התחתון של המסך, והמשתמשים יכולים לפתוח אותו בחלונית של שכבת-על כדי להציג תוצאות חיפוש מלאות.
הטריגרים למעקב אחרי הקשה מופעלים לכל טקסט פשוט שאפשר לבחור, לא אינטראקטיבי או לא ניתן למיקוד. כאשר יש בדף מטפל קליקים שמגיב להקשה על טקסט, התכונה 'חיפוש בנגיעה' מזהה באופן אוטומטי את התגובה ומתעלם ממנה כי אנחנו יודעים שהמפתח התכוון לטפל באירוע. שימוש בתנועת לחיצה ארוכה לבחירת טקסט באופן ידני מפעיל גם את הסרגל 'נגיעה לחיפוש'. המשתמשים יכולים להפעיל או להשבית את התכונה באמצעות העדפה בהגדרות הפרטיות של Chrome.
כמחבר של אתר, במקרים רבים אינך רוצה שתנועת הקשה על רכיב מסוים תפעיל חיפוש. כדי להבטיח ש-Chrome יעשה את מה שהתכוונתם, עליכם ליצור את הרכיבים הבאים:
- ניתן למיקוד: הוספת מאפיין
tabindex=-1
לרכיב. - אינטראקטיבי: אפשר להשתמש באחת מהדרכים הסטנדרטיות כדי לציין שרכיב הוא אינטראקטיבי:
- משתמשים בתגי עיצוב של נגישות כדי לציין שלרכיב יש תפקידiיעד או מאפייני ווידג'ט. לדוגמה, רכיב עם role=button לא יופעל. הוספת תגי עיצוב של נגישות מועילה גם לכך שהדף שלך יהיה קריא יותר למשתמשים עם ליקויי ראייה.
- כל handler של קליקים ב-JavaScript שקורא ל-
preventDefault()
או מבצע שינוי ב-DOM או ב-CSS לא יפעיל 'נגיעה לחיפוש'.
- לא ניתן לבחירה: באמצעות
-webkit-user-select: none
. טקסט שלא ניתן לבחירה לא יפעיל 'נגיעה' גם אם ייעשה שימוש בתנועה של לחיצה ארוכה.
אם התכונה 'נגיעה לחיפוש' לא מופעלת בזמן או במקום שבו היא צריכה לפעול, או שהיא מופעלת לסירוגין, סביר להניח שהרכיבים מסומנים כניתנים למיקוד או כאינטראקטיביים כשהם לא אמורים להיות מופעלים. השתמש בתהליך הבא כדי לקבוע מה מונע את ההפעלה של 'נגיעה לחיפוש':
- בודקים אם אפשר לבחור את הטקסט באמצעות תנועת הלחיצה הארוכה. אם הטקסט נבחר, אבל סרגל הנגיעה לא מופיע, ודאו שהתכונה לא הושבתה בטלפון בהגדרה 'חיפוש בנגיעה' בקטע 'פרטיות ב-Chrome'. כמו כן, שימו לב שחלק מהמכשירים הפשוטים לא תומכים ב'נגיעה לחיפוש'.
- אם סרגל 'נגיעה לחיפוש' מוצג בזמן שמסומן טקסט אבל לא כשמקישים עליו, סימן שיש בעיה שמפעילה את ההקשה. אם הטריגר חל לסירוגין, סביר להניח שהבעיה נובעת מכך שהאנימציה מופעלת באופן מותנה על ידי handler של JavaScript עבור הרכיב.
- אם הטריגר אף פעם לא מתרחש, צריך לבדוק מה הסיבות לטריגר שמפורטות למעלה (כדאי לבדוק אם האלמנט ניתן למיקוד או אינטראקטיבי).
אם הדף עדיין לא פועל כמו שרציתם, תוכלו לדווח על באג בכתובת
crbug.com ולהוסיף את התווית
Cr-UI-Browser-Mobile-TouchToSearch
.