3
Takeaways Key
Untuk kebolehcapaian web, menguruskan fokus adalah penting dalam widget interaktif yang didorong oleh JavaScript. Adalah penting untuk menggunakan fokus programatik untuk memastikan pengguna dapat berinteraksi dengan pelbagai bahagian antara muka, walaupun tanpa menggunakan tetikus.
Untuk kebolehcapaian, menguruskan fokus adalah penting dalam banyak walaupun widget interaktif yang paling mudah dipacu oleh JavaScript, tetapi penggunaan yang betul hampir mustahil untuk diuji dengan alat QA Automatik. Itulah sebabnya saya ingin membawa anda melalui beberapa contoh mudah hari ini.
Dalam contoh ini, saya menjemput anda untuk membayangkan anda telah 'meningkatkan' pautan navigasi halaman yang sama supaya, bukannya melompat tiba-tiba ke serpihan sasaran pautan (#Bahagian1, katakan), anda diarahkan perlahan-lahan ke destinasi ini melalui animasi scrolltop JavaScript. Perkara penting yang perlu diperhatikan mengenai kebolehcapaian apabila menggunakan teknik ini adalah keperluan untuk mengatasi fungsi lalai elemen .
event<span>.preventDefault();</span>
Dengan melakukan ini, anda memberitahu penyemak imbas untuk mengelakkan, dengan semua kos, melakukan apa -apa standard, yang diharapkan atau interoperable. Anda memberitahu pautan pautan tidak . Malah, satu -satunya cara untuk memastikan pautan itu sebenarnya mengambil pengguna dengan betul ke fragmen halaman adalah untuk mematikan JavaScript. Nah, kemudian.
dengan hanya menghubungkan ke fragmen halaman - seperti yang akan dilakukan oleh JavaScript - penyemak imbas pada dasarnyamemfokuskan serpihan ini. Di sinilah output pembaca skrin dan interaksi papan kekunci kini berasaskan. Dengan menghidupkan scrolltop, tiada tindakan fokus seperti itu berlaku, bermakna output pembaca skrin dan interaksi papan kekunci berterusan dari kawasan halaman yang tidak lagi dilihat. Ini tidak baik.
ubat
Nota: Terima kasih kepada Patrick dan lain-lain dalam komen untuk menunjukkan fakta bahawa ini harus menggunakan "-1" dan bukannya "0" untuk nilai TabIndex, yang telah kami diperbetulkan. 🎜> Tugas kedua kami adalah untuk memasukkan kaedah JavaScript Focus () dalam panggilan balik animasi, memastikan serpihan difokuskan
selepas<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span> </span> ... <span><span><span></section</span>></span></span>
Akhirnya, adalah idea yang baik untuk merakam lokasi sub-halaman kami di URL, seperti yang akan berlaku dengan hanya menghubungkan ke serpihan (mis. Http: // my-site/#seksyen1). Dengan cara ini kita dapat menyalin alamat sebagai pautan ke bahagian tertentu (iaitu kita boleh "mendalam pautan"). Sertakan baris berikut selepas fokus () telah berlaku:
<span>document.getElementById('section1').focus();</span>
<span>window.location.hash = 'section1';</span>
Demo codepen kecil tertanam di bawah. Cuba gunakan dengan tab Tab dan Shift hanya sebagai pengguna papan kekunci biasa.
<span><span><span><a</span> href<span>="#whatever"</span>></span>scroll to section 'whatever'<span><span></a</span>></span></span>
Ambil perhatian bahawa kami menambah atribut TabIndex dengan cepat di JavaScript kami. Sekarang kita memfokuskan bahagian -bahagian (serpihan) yang kita tatal, lokasi yang kita anggap lebih daripada sekadar visual. Iaitu, saya harus menekan kekunci Tab selepas berpindah ke bahagian baru, saya akan memfokuskan elemen fokus seterusnya dalam bahagian itu; Hyperlink membaca 'heydonworks.com', dalam contoh berikut.
event<span>.preventDefault();</span>
Sekiranya kita tidak memfokuskan seksyen1, menekan kekunci Tab akan memberi tumpuan kepada elemen seterusnya berikutan pautan menghasut, yang akan melompat kembali ke blok navigasi kami. Dalam erti kata lain, pengguna papan kekunci akan kembali ke satu persegi.
<span><span><span><section</span> id<span>="section1"</span> tabindex<span>="-1"</span>></span> </span> ... <span><span><span></section</span>></span></span>
Berikut adalah satu lagi contoh kecil. Mari kita berpura -pura pengguna telah menekan
Untuk membuat pembukaan butang ini boleh diakses, kita harus memberi tumpuan () dialog dengan cara yang sama seperti yang kita tumpukan serpihan halaman dalam contoh terakhir. Menggunakan JQueryui, butang pertama dialog ('mengesahkan', dalam kes kita) akan difokuskan. Pelaksanaan lain memfokuskan bekas dialog. Sama ada cara, pengguna secara pemrograman dihantar ke tempat yang betul .
<span>document.getElementById('section1').focus();</span>
Persoalannya ialah, 'Apa yang berlaku untuk memberi tumpuan apabila dialog ditutup?' Jika kita tidak berbuat apa -apa, dialog yang baru tersembunyi semestinya kehilangan tumpuan tetapi tidak ada tempat yang akan berlaku. Dalam banyak ejen pengguna, ini bermakna
difokuskan secara lalai, menjadikan pengguna menyeberang melalui dokumen untuk mencari tempat mereka lagi.Ia akan lebih logik untuk memfokuskan semula elemen yang membuka dialog. Ini mudah dilakukan dengan hanya menyimpan nod dom dalam ingatan atau menulis penanda di atasnya untuk kegunaan kemudian, seperti ini:
<span>window.location.hash = 'section1';</span>
Pada akhir kaedah dekat dialog (), kami akan memfokuskan elemen asal:
<span><span><span><a</span> href<span>="#whatever"</span>></span>scroll to section 'whatever'<span><span></a</span>></span></span>
Kebanyakan pembaca skrin, apabila butang yang diubahsuai, akan mengumumkan tajuk halaman, maka butang yang difokuskan. Dengan cara itu, anda tahu di mana anda berada. Contoh dialog menggunakan kaedah ini tersedia untuk ujian sekiranya anda inginkan.
Ini adalah kesilapan yang sama untuk mengatasi peningkatan progresif dengan aksesibiliti; Untuk berfikir bahawa memastikan sesuatu yang merosot untuk bekerja dengan JavaScript dimatikan (seperti yang akan berlaku dalam kes ini) bermakna ia 'boleh diakses'. Pasti, ia menjadikannya mudah diakses oleh mereka yang tidak mempunyai JavaScript, tetapi kebanyakan pengguna papan kekunci dan pembaca skrin berinteraksi dengan aplikasi anda dengan bantuan JavaScript seperti orang lain. Caranya ialah menggunakan JavaScript dengan cara yang menghormati tingkah laku dan input yang berbeza dari semua pengguna anda dan sebarang teknologi bantuan yang mungkin mereka gunakan.
Satu lagi perkara: Jika anda pernah didakwa bekerja pada aplikasi satu halaman yang dibina dengan, katakan, emer.js atau angularjs, grep codebase untuk kaedah fokus JavaScript (). Aplikasi sedemikian sepenuhnya menulis semula navigasi menggunakan 'pandangan'; Dinamik membina semula halaman tunggal. Tanpa beberapa pengurusan fokus yang teliti, membina semula DOM sedemikian rupa boleh mengasah aksesibiliti dengan cepat. Sekiranya grep anda mendapati kurang daripada beberapa contoh .fokus, mungkin terdapat banyak kerja yang perlu dilakukan.
Terdapat beberapa cara praktikal untuk meningkatkan tumpuan dan tumpuan. Pertama, mengekalkan gaya hidup yang sihat adalah penting. Ini termasuk tidur yang cukup, makan diet seimbang, dan aktiviti fizikal biasa. Kedua, kesedaran dan meditasi dapat membantu melatih otak anda untuk memberi tumpuan lebih baik. Ketiga, meminimumkan gangguan, seperti mematikan pemberitahuan pada peranti anda, dapat membantu anda menumpukan pada tugas di tangan. Akhir sekali, mengambil rehat tetap sebenarnya boleh meningkatkan tumpuan dan produktiviti anda dalam jangka masa panjang.
Bagaimana tidur mempengaruhi tumpuan dan tumpuan?
Bagaimana saya boleh melatih otak saya untuk memberi tumpuan lebih baik? Teknik seperti kesedaran dan meditasi dapat membantu. Di samping itu, mencabar otak anda dengan teka -teki dan permainan juga boleh meningkatkan fungsi dan fokus kognitif. dan kepekatan. Oleh itu, menguruskan tekanan melalui teknik -teknik seperti pernafasan yang mendalam, yoga, dan kesedaran dapat membantu meningkatkan tumpuan dan kepekatan.
Atas ialah kandungan terperinci Belajar Fokus (). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!