Didapati terdapat nilai atribut id pendua "x" dalam halaman web.
P粉905144514
2023-08-31 16:06:41
<p>Saya menggunakan Angular 7 - tiga komponen [a, b, c] menggunakan elemen input dengan id [x], bagaimanapun, komponen [b] juga menggunakan 4 input dengan elemen id [x]. Ini menimbulkan isu kebolehaksesan - kerana id perlu unik. Kes ujian menggunakan 'getElementById' untuk mendapatkan semula nilai dan mengharapkan hasil tertentu. </p>
<p>Sekarang apa yang saya lakukan ialah menukar pemilih id ini kepada kelas - kerana saya tidak memerlukannya untuk menjadi unik dan juga menukar kes ujian - 'querySelector'. </p>
<p>Sebarang idea mengapa saya masih mendapat ralat yang sama seperti "Nilai atribut id pendua 'x' ditemui pada halaman web"? </p>
Dari perspektif kebolehaksesan, WCAG 4.1.1 Penghuraian ialah panduan untuk memiliki ID unik. Panduan ini pada asasnya mengatakan anda sepatutnya mempunyai HTML yang sah, tetapi ia hanya menyenaraikan empat jenis HTML tidak sah yang boleh menyebabkan isu kebolehaksesan:
Terdapat banyak cara untuk menjana HTML tidak sah, tetapi keempat-empat ini juga boleh menyebabkan isu kebolehaksesan. Ambil perhatian bahawa mana-mana daripada empat isu ini bermakna anda mempunyai HTML yang tidak sah, jadi anda mungkin menghadapi masalah selain daripada isu kebolehaksesan. Saya rasa anda tidak mahu mana-mana HTML tidak sah.
Jadi dalam kes anda, anda melihat ralat tersenarai keempat. Spesifikasi HTML menyatakan bahawa ID mestilah unik.
Anda menyebut:
Jika anda mempunyai ID pendua, anda mahukan spesifikasi
getElementById
中获得什么?getElementById
dari berkata:Anda juga berkata:
Adakah ini bermakna tiada elemen mempunyai ID? Adakah mereka semua mempunyai kelas? Jika anda menjalankan alat pengimbasan kebolehaksesan dan ia membenderakan ralat tentang ID pendua, maka jelas sekali anda tidak menukar semua ID kepada kelas.