Tīmekļa komponentu pieejamība: ARIA ievieŔana un ekrāna lasītāju atbalsts | MLOG | MLOG

Paskaidrojums:

2. piemērs: Pieejams akordeona komponents

            
class AccessibleAccordion extends HTMLElement {
  constructor() {
    super();
    this.attachShadow({ mode: 'open' });
  }

  connectedCallback() {
    this.shadowRoot.innerHTML = `
      <style>
        .accordion-header {
          cursor: pointer;
          padding: 10px;
          background-color: #eee;
          border: none;
          text-align: left;
          width: 100%;
        }
        .accordion-content {
          padding: 0 10px;
          overflow: hidden;
          transition: max-height 0.2s ease-out;
          max-height: 0;
        }
        .accordion-content.show {
          max-height: 500px; /* Adjust as needed */
        }
      </style>
      <button class="accordion-header" aria-expanded="false" aria-controls="content">
        <slot name="header">Section Header</slot>
      </button>
      <div id="content" class="accordion-content" aria-hidden="true">
        <slot name="content">Section Content</slot>
      </div>
    `;

    const header = this.shadowRoot.querySelector('.accordion-header');
    const content = this.shadowRoot.querySelector('.accordion-content');

    header.addEventListener('click', () => {
      const expanded = header.getAttribute('aria-expanded') === 'true';
      header.setAttribute('aria-expanded', !expanded);
      content.classList.toggle('show');
      content.setAttribute('aria-hidden', expanded);
    });
  }
}

customElements.define('accessible-accordion', AccessibleAccordion);

            

Paskaidrojums:

Specifiski apsvērumi ietvariem (React, Angular, Vue.js)

Lietojot tÄ«mekļa komponentus JavaScript ietvaros, piemēram, React, Angular vai Vue.js, ir svarÄ«gi pievērst uzmanÄ«bu tam, kā Å”ie ietvari apstrādā atribÅ«tus un notikumu klausÄ«tājus. Pārliecinieties, ka ARIA atribÅ«ti ir pareizi saistÄ«ti un dinamiski atjaunināti, mainoties komponenta stāvoklim.

Piemēram, React jūs varētu izmantot `aria-` prefiksu ARIA atribūtiem:

            
<button aria-label="Close dialog" onClick={handleClose}>Close</button>

            

Angular jūs varat izmantot īpaŔību sasaisti (property binding), lai dinamiski atjauninātu ARIA atribūtus:

            
<button [attr.aria-expanded]="isExpanded" (click)="toggleAccordion()">Toggle Accordion</button>

            

Vue.js piedāvā līdzīgus mehānismus atribūtu sasaistei un notikumu apstrādei.

Biežākās pieejamības kļūdas, no kurām izvairīties

Šeit ir dažas biežāk sastopamas pieejamības kļūdas, no kurām jāizvairās, izstrādājot tīmekļa komponentus:

Noslēgums

Pieejamu tÄ«mekļa komponentu izveide ir bÅ«tisks aspekts iekļaujoÅ”u un lietotājam draudzÄ«gu tÄ«mekļa lietojumprogrammu veidoÅ”anā. Izprotot un pareizi ievieÅ”ot ARIA atribÅ«tus, testējot ar ekrāna lasÄ«tājiem un ievērojot labākās pieejamÄ«bas prakses, mēs varam nodroÅ”ināt, ka mÅ«su tÄ«mekļa komponenti ir pieejami visiem lietotājiem neatkarÄ«gi no viņu spējām. PieejamÄ«bas ievēroÅ”ana ir ne tikai pareizā rÄ«cÄ«ba; tā nodroÅ”ina arÄ« labāku lietotāja pieredzi, uzlabotu SEO un iekļaujoŔāku tÄ«mekli ikvienam.

TÄ«meklim turpinot attÄ«stÄ«ties, tÄ«mekļa komponentiem bÅ«s arvien nozÄ«mÄ«gāka loma tÄ«mekļa izstrādes nākotnes veidoÅ”anā. Prioritizējot pieejamÄ«bu jau no paÅ”a sākuma, mēs varam izveidot tÄ«mekli, kas ir patiesi pieejams visiem.

Papildu resursi