Rumah hujung hadapan web tutorial js Langkah Mudah untuk Memastikan Kebolehcapaian dalam Projek Sudut Anda

Langkah Mudah untuk Memastikan Kebolehcapaian dalam Projek Sudut Anda

Dec 31, 2024 am 08:51 AM

Apabila kami membina apl, kami biasanya menumpukan pada penghantaran dan bukannya meliputi aspek lain seperti Kebolehaksesan dan Ujian (tetapi ujian akan dibincangkan dalam siaran lain). Hari ini, saya ingin bercakap tentang Kebolehaksesan. Selalunya, kami berpendapat kebolehcapaian hanyalah untuk membantu orang kurang upaya menggunakan produk kami, tetapi ia sebenarnya meningkatkan pengalaman untuk semua pengguna.

Pada bulan Disember, saya meluangkan sedikit masa untuk mempelajari tentang Kebolehcapaian dan saya amat mengesyorkan untuk mengambil kursus percuma ini.

  • Belajar Kebolehcapaian: https://web.dev/learn/accessibility

  • Bina apl Sudut yang lebih mudah diakses https://codelabs.developers.google.com/angular-a11y#3

Hujung minggu ini, saya meluangkan masa untuk menguji kemahiran yang saya pelajari dengan membina bentuk kecil yang merangkumi kebolehaksesan dari awal, termasuk persediaan dan pengesahan borang. Jom buat!

Saya ingin membuat borang "Surat kepada Santa" di mana anak saya boleh menghantar nama, e-mel dan mesejnya kepada Santa Claus, tetapi saya ingin membina borang yang boleh diakses dengan pengesahan yang jelas dan boleh diakses serta pemberitahuan apabila mesej itu telah berjaya dihantar.

Akhirnya, saya mendapat borang seperti ini:

Simple Steps to Ensure Accessibility in Your Angular Projects


Matlamat utama borang adalah untuk mengumpul maklumat daripada pengguna. Jika borang tidak boleh diakses, kami mengecualikan sebahagian besar orang, seperti pengguna yang cacat penglihatan atau motor, atau mereka yang terjejas akibat kemalangan sementara atau tangan mereka sibuk.

Saya mula meningkatkan kebolehcapaian dengan menggunakan elemen HTML semantik seperti <header>, <main> dan <footer> dan menyusun kandungan secara hierarki dengan tajuk (<h1> hingga <h6>). Ini membantu pembaca skrin menavigasi halaman dengan betul dan juga meningkatkan SEO.

&lt;header&gt;
  &lt;h1&gt;Write Your Letter to Santa&lt;/h1&gt;
&lt;/header&gt;
&lt;main&gt;
  &lt;h2&gt;Fill Out the Form&lt;/h2&gt;
&lt;/main&gt;
&lt;footer&gt;
&lt;/footer&gt;
Salin selepas log masuk
Salin selepas log masuk

Matlamat utama borang adalah untuk mengumpul maklumat daripada pengguna. Jika borang tidak boleh diakses, kami mengecualikan sebahagian besar orang, seperti pengguna yang cacat penglihatan atau motor, atau mereka yang terjejas akibat kemalangan sementara atau tangan mereka sibuk.

Saya mula meningkatkan kebolehcapaian dengan menggunakan elemen HTML semantik seperti <header>, <main> dan <footer> dan menyusun kandungan secara hierarki dengan tajuk (<h1> hingga <h6>). Ini membantu pembaca skrin menavigasi halaman dengan betul dan juga meningkatkan SEO.

&lt;label for="name"&gt;Name&lt;/label&gt;
&lt;input&gt;



<p>But forms are more than just input and label; they need validations or error messages that should only appear when relevant, such as after a field has been interacted with (touched) or when the form is submitted. But how do I notify the user with a message?</p>

<p>First, the notifications should be announced by screen readers using aria-live with a visually clear design for users who do not use assistive technologies and avoid unnecessarily interrupting the user.</p>

<blockquote>
<p>Learn more about aria-live and roles</p>
</blockquote>

<p>There are different ARIA roles to use with the notifications for specific scenarios, using role="alert" for critical or high-priority messages, such as errors. It automatically interrupts the user and announces the content immediately, or role="status" for non-critical updates, such as confirmations or status changes.<br>
</p>

<pre class="brush:php;toolbar:false">    &lt;div&gt;



<p>But how are those messages announced? You have assertive, which stops the current message, or polite, which waits to announce by screen readers without interruption.<br>
</p>

<pre class="brush:php;toolbar:false">@if ((nameCtrl.invalid &amp;&amp; nameCtrl.touched) || (nameCtrl.invalid &amp;&amp; isSubmitted)) {
  &lt;div&gt;



<p>For example, aria-live="polite" waits to announce the content after completing its current task. It is perfect for notifications like when a message has been sent:<br>
</p>

<pre class="brush:php;toolbar:false">    @if (messageSent) {
      &lt;div&gt;



<p>But what happens when I want content only for screen readers? We can create a utility class like .visually-hidden for content that is only meant to be accessible to screen readers and not visible to sighted users.<br>
</p>

<pre class="brush:php;toolbar:false">.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
Salin selepas log masuk
Salin selepas log masuk

Ia membantu memastikan maklumat penting disampaikan kepada pengguna yang bergantung pada pembaca skrin tanpa menjejaskan reka letak visual.

&lt;span&gt;



<p>Another key point is also is the color, with adequate contrast, the text should have sufficient contrast with its background according but most easy way is using the color-contrast-checker extension.<br>
</p>

<pre class="brush:php;toolbar:false">input.ng-invalid.ng-touched {
  border-color: #e74c3c; 
  background-color: #fdecea; 
}
Salin selepas log masuk
Salin selepas log masuk

Sempurna kita boleh membina borang kita sedia dengan kebolehaksesan!! Hey tunggu sekejap? Apa yang berlaku jika esok @Jörgen de Groot menambah ciri baharu , bagaimana saya boleh mengawal dia tidak melanggar kebolehaksesan ?

Es-lint ialah rakan anda, tambah dahulu menggunakan skema:

&lt;header&gt;
  &lt;h1&gt;Write Your Letter to Santa&lt;/h1&gt;
&lt;/header&gt;
&lt;main&gt;
  &lt;h2&gt;Fill Out the Form&lt;/h2&gt;
&lt;/main&gt;
&lt;footer&gt;
&lt;/footer&gt;
Salin selepas log masuk
Salin selepas log masuk

Es-lint menyediakan satu set peraturan kebolehaksesan seperti label kebolehcapaian-mempunyai-kawalan-kawalan untuk memastikan bahawa setiap elemen label mempunyai kawalan bentuk yang berkaitan (serupa dengan label kebolehaksesan-untuk tetapi lebih ketat).

&lt;label for="name"&gt;Name&lt;/label&gt;
&lt;input&gt;



<p>But forms are more than just input and label; they need validations or error messages that should only appear when relevant, such as after a field has been interacted with (touched) or when the form is submitted. But how do I notify the user with a message?</p>

<p>First, the notifications should be announced by screen readers using aria-live with a visually clear design for users who do not use assistive technologies and avoid unnecessarily interrupting the user.</p>

<blockquote>
<p>Learn more about aria-live and roles</p>
</blockquote>

<p>There are different ARIA roles to use with the notifications for specific scenarios, using role="alert" for critical or high-priority messages, such as errors. It automatically interrupts the user and announces the content immediately, or role="status" for non-critical updates, such as confirmations or status changes.<br>
</p>

<pre class="brush:php;toolbar:false">    &lt;div&gt;



<p>But how are those messages announced? You have assertive, which stops the current message, or polite, which waits to announce by screen readers without interruption.<br>
</p>

<pre class="brush:php;toolbar:false">@if ((nameCtrl.invalid &amp;&amp; nameCtrl.touched) || (nameCtrl.invalid &amp;&amp; isSubmitted)) {
  &lt;div&gt;



<p>For example, aria-live="polite" waits to announce the content after completing its current task. It is perfect for notifications like when a message has been sent:<br>
</p>

<pre class="brush:php;toolbar:false">    @if (messageSent) {
      &lt;div&gt;



<p>But what happens when I want content only for screen readers? We can create a utility class like .visually-hidden for content that is only meant to be accessible to screen readers and not visible to sighted users.<br>
</p>

<pre class="brush:php;toolbar:false">.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
Salin selepas log masuk
Salin selepas log masuk

Jangan ragu untuk membaca lebih lanjut tentang kebolehaksesan es-lint, tambahkan peraturan ini pada fail (.eslintrc.json), laraskan keterukan ("amaran", "ralat", dll.) mengikut keperluan:

&lt;span&gt;



<p>Another key point is also is the color, with adequate contrast, the text should have sufficient contrast with its background according but most easy way is using the color-contrast-checker extension.<br>
</p>

<pre class="brush:php;toolbar:false">input.ng-invalid.ng-touched {
  border-color: #e74c3c; 
  background-color: #fdecea; 
}
Salin selepas log masuk
Salin selepas log masuk

Selepas lari npm lari lint tada!! kami mempunyai linter untuk kod kami!

Simple Steps to Ensure Accessibility in Your Angular Projects

Rekap

Saya harap apabila anda mula membuat projek anda yang seterusnya, ingat petua ini untuk memudahkan kebolehcapaian anda dan berhati-hati untuk menambah baik apl kami untuk semua pengguna.

Atas ialah kandungan terperinci Langkah Mudah untuk Memastikan Kebolehcapaian dalam Projek Sudut Anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Ganti aksara rentetan dalam javascript Ganti aksara rentetan dalam javascript Mar 11, 2025 am 12:07 AM

Ganti aksara rentetan dalam javascript

Tutorial Persediaan API Carian Google Custom Tutorial Persediaan API Carian Google Custom Mar 04, 2025 am 01:06 AM

Tutorial Persediaan API Carian Google Custom

Contoh warna json fail Contoh warna json fail Mar 03, 2025 am 12:35 AM

Contoh warna json fail

8 plugin susun atur halaman jquery yang menakjubkan 8 plugin susun atur halaman jquery yang menakjubkan Mar 06, 2025 am 12:48 AM

8 plugin susun atur halaman jquery yang menakjubkan

10 JQuery Syntax Highlighters 10 JQuery Syntax Highlighters Mar 02, 2025 am 12:32 AM

10 JQuery Syntax Highlighters

Bina Aplikasi Web Ajax anda sendiri Bina Aplikasi Web Ajax anda sendiri Mar 09, 2025 am 12:11 AM

Bina Aplikasi Web Ajax anda sendiri

Apa itu ' ini ' Dalam JavaScript? Apa itu ' ini ' Dalam JavaScript? Mar 04, 2025 am 01:15 AM

Apa itu ' ini ' Dalam JavaScript?

10 JavaScript & JQuery MVC Tutorial 10 JavaScript & JQuery MVC Tutorial Mar 02, 2025 am 01:16 AM

10 JavaScript & JQuery MVC Tutorial

See all articles