ניהול הטריגר של חיפוש בהקשה

התכונה 'חיפוש בהקשה' הושקה ביוני 2015 ב-Chrome 43 ברוב הטלפונים עם Android. כשהמשתמש מקיש על טקסט בדף כלשהו ב-Chrome, המילה מסומנת יחד עם הטקסט הרלוונטי שמסביב. מונח החיפוש מופיע בסרגל בחלק התחתון של המסך, והמשתמשים יכולים לפתוח אותו בחלונית של שכבת-על כדי להציג תוצאות חיפוש מלאות.

אנימציה של הקשה לחיפוש

הפעלת הקשה מופעלת בכל טקסט פשוט שניתן לבחור בו, שאינו אינטראקטיבי או שאינו ניתן למיקוד. כשיש בדף לחצן handler של קליקים שמגיב להקשה על טקסט, התכונה 'חיפוש בהקשה' מזהה באופן אוטומטי את התגובה ומתעלם ממנה מכיוון שאנחנו יודעים שהמפתח התכוון לטפל באירוע. השימוש בתנועת "נגיעה ממושכת" לבחירת טקסט באופן ידני מפעיל גם את הסרגל 'חיפוש בהקשה'. המשתמשים יכולים להפעיל או להשבית את התכונה באמצעות העדפה בהגדרות הפרטיות של Chrome.

כמחבר של אתר, יש מקרים רבים שבהם לא רוצים שתנועת הקשה על רכיב מסוים תפעיל חיפוש. כדי להבטיח ש-Chrome יפעל בדיוק כמו שרציתם, הגדירו את הרכיבים האלה:

  1. ניתן למיקוד: מוסיפים נכס tabindex=-1 לרכיב.
  2. אינטראקטיבי: השתמש באחת מכמה דרכים סטנדרטיות כדי לציין שרכיב מסוים הוא אינטראקטיבי:
    • השתמשו בתגי עיצוב של נגישות כדי לציין שלרכיב יש wiתפקיד, או מאפייני ווידג'ט. לדוגמה, כל רכיב עם role=button לא יופעל. להוספת סימון נגישות יש יתרון נוסף בכך שהדף שלך יהיה קריא יותר למשתמשים עם ליקויי ראייה.
    • כל handler של JavaScript שקורא ל-preventDefault() או משנה את ה-DOM או ה-CSS, לא יפעיל את התכונה 'נגיעה לחיפוש'.
  3. לא ניתן לבחירה: שימוש ב--webkit-user-select: none. טקסט שלא ניתן לבחירה לא הפעיל את התכונה 'נגיעה לחיפוש' גם כשמשתמשים בתנועה של לחיצה ארוכה.

אם התכונה 'חיפוש בהקשה' לא מופעלת בזמן ובמקום שבהם היא צריכה לפעול, או שהיא מופעלת לסירוגין, סביר להניח שהרכיבים מסומנים כרכיבים ניתנים למיקוד או שהם אינטראקטיביים כשלא אמורים להיות מופעלים. תוכלו להיעזר בפעולות הבאות כדי לקבוע מה מונע את ההצגה של התכונה 'חיפוש בהקשה':

  1. בודקים אם הטקסט ניתן לבחירה באמצעות תנועת לחיצה ארוכה. אם הטקסט ייבחר, אבל סרגל 'גע כדי לחפש' לא מופיע, בדוק שהתכונה לא הושבתה בטלפון בהגדרות 'נגיעה לחיפוש' בקטע 'פרטיות' ב-Chrome. כמו כן, חשוב לזכור שמכשירים פשוטים מסוימים לא תומכים בתכונה 'חיפוש בהקשה'.
  2. אם הסרגל 'נגיעה לחיפוש' מופיע כשמקישים על טקסט אבל לא כשמקישים עליו, סימן שיש בעיה שגורמת להפעלה של הקשה. אם הטריגר מופעל לסירוגין, סביר להניח שהבעיה נובעת מהפעלה מותנית של האנימציה על ידי גורם מטפל של JavaScript עבור האלמנט.
  3. אם הטריגר לא קורה אף פעם, כדאי לעיין בסיבות לטריגר שמפורטים למעלה (כדאי לבדוק אם ניתן להתמקד ברכיב או שהוא אינטראקטיבי).

אם הדף עדיין לא פועל בהתאם לציפיות שלכם, יש לדווח על באג בכתובת crbug.com ולהוסיף את התווית Cr-UI-Browser-Mobile-TouchToSearch.