كيف يمكنني تحديد مفتاح وصول لعنصر HTML غير مرئي

StackOverflow https://stackoverflow.com/questions/244063

  •  04-07-2019
  •  | 
  •  

سؤال

انا املك <button> مع مفتاح الوصول المخصص له.يعمل مفتاح الوصول بشكل جيد طالما أن الزر مرئي، ولكن عندما أقوم بضبطه display: none أو visibility: hidden, ، لم يعد مفتاح الوصول يعمل.

حاولت أيضاً دون جدوى:

  • استخدم نوع عنصر مختلف:أ، الإدخال (أنواع مختلفة، حتى بدون نوع).
  • قم بتعيين مفتاح الوصول إلى التسمية التي تلتف حول عنصر التحكم غير المرئي.

لاحظ أنني لست متأكدًا مما إذا كان هذا هو السلوك القياسي، ولكن قبل إصدار Firefox 3، بدا أن مفتاح الوصول يعمل بغض النظر عن إمكانية الرؤية.

هل كانت مفيدة؟

المحلول

السلوك الذي تراه صحيح، ولا يمكنك "الوصول" إلى عنصر غير معروض.من المؤكد أن اقتراح سال سوف ينجح، لكن هل لي أن أسأل ما هو هدفك من القيام بذلك؟ربما تكون هناك طريقة أفضل لإنجاز ما تحاول تحقيقه.هل فكرت في استخدام معالج الضغط على المفاتيح؟

أعتقد أنك ربما ترغب في اتباع الاقتراحات الأخرى إذا كنت لا تريد معالج ضغط المفاتيح.جرب الموضع:مطلق؛اليسار: -9999 بكسل؛لسحب المحتوى الخاص بك من الصفحة.أو استخدم الموضع المطلق، وقم بتغيير العتامة إلى صفر ومؤشر z إلى -1.باستخدام الموضع المطلق، لن يؤثر العنصر على موضع المحتوى الآخر على الصفحة، وسيؤدي ضبط العتامة إلى جعله غير مرئي.حتى مع ضبط العتامة على الصفر، لا يزال بإمكانك النقر على العنصر، وعلى الرغم من عدم قدرتك على رؤيته، فقد يمنعك ذلك من القدرة على النقر على عناصر أخرى من الصفحة، لذا استخدم مؤشر z سلبيًا لسحبه خلف المحتوى الآخر.

نصائح أخرى

يمكنك تطبيق هامش سلبي لدفع العنصر خارج الصفحة المرئية.أعتقد أن العديد من المتصفحات وقارئات النصوص تتجاهل العناصر ذات display:none وربما أيضا visibility:hidden.

الحل الأسهل: height: 0px; margin: 0px; padding: 0px; في CSS الخاص بك.

بدلاً من سمات الرؤية أو العرض، ضع الزر خارج الصفحة

<button accesskey="a" style="position: absolute; top: -9999px">button</button>

تحذير:يؤدي استخدام اليسار بدلاً من الأعلى إلى حدوث خطأ غريب في العرض في IE7

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top