தமிழ்

அணுகக்கூடிய மற்றும் பயனர் நட்பு தாவல் இடைமுகப்புகளைத் திறக்கவும். விசைப்பலகை வழிசெலுத்தல், ARIA ரோல்கள் மற்றும் உலகளாவிய பார்வையாளர்களுக்கான வலுவான ஃபோகஸ் நிர்வாகத்திற்கான சிறந்த நடைமுறைகளை அறிக.

தாவல் இடைமுகப்புகளை மாஸ்டர் செய்தல்: விசைப்பலகை வழிசெலுத்தல் மற்றும் ஃபோகஸ் நிர்வாகத்தில் ஒரு ஆழமான மூழ்கல்

தாவல் இடைமுகப்புகள் நவீன வலை வடிவமைப்பின் ஒரு மூலக்கல்லாகும். தயாரிப்பு பக்கங்கள் மற்றும் பயனர் டாஷ்போர்டுகள் முதல் சிக்கலான வலை பயன்பாடுகள் வரை, அவை உள்ளடக்கத்தை ஒழுங்கமைப்பதற்கும் பயனர் இடைமுகத்தை ஒழுங்குபடுத்துவதற்கும் ஒரு நேர்த்தியான தீர்வை வழங்குகின்றன. அவை மேற்பரப்பில் எளிமையாகத் தோன்றினாலும், உண்மையிலேயே பயனுள்ள மற்றும் அணுகக்கூடிய தாவல் கூறுகளை உருவாக்குவதற்கு விசைப்பலகை வழிசெலுத்தல் மற்றும் உன்னிப்பான ஃபோகஸ் மேலாண்மை பற்றிய ஆழமான புரிதல் தேவைப்படுகிறது. மோசமாக செயல்படுத்தப்பட்ட தாவல் இடைமுகம், விசைப்பலகைகள் அல்லது உதவி தொழில்நுட்பங்களை நம்பியிருக்கும் பயனர்களுக்கு ஒரு தடையாக மாறும், இதனால் அவர்கள் உங்கள் உள்ளடக்கத்திலிருந்து திறம்பட பூட்டப்படுவார்கள்.

இந்த விரிவான வழிகாட்டி வலை உருவாக்குநர்கள், UI/UX வடிவமைப்பாளர்கள் மற்றும் அணுகல்தன்மை வக்கீல்களுக்கானது, அவர்கள் அடிப்படைகளைத் தாண்டி செல்ல விரும்புகிறார்கள். விசைப்பலகை தொடர்புகளுக்கான சர்வதேச அளவில் அங்கீகரிக்கப்பட்ட வடிவங்கள், சொற்பொருள் சூழலை வழங்குவதில் ARIA (அணுகக்கூடிய ரிச் இன்டர்நெட் அப்ளிகேஷன்ஸ்) முக்கியமான பங்கு மற்றும் அவர்களின் இருப்பிடம் அல்லது அவர்கள் வலையுடன் எவ்வாறு தொடர்பு கொள்கிறார்கள் என்பதைப் பொருட்படுத்தாமல், அனைவருக்கும் தடையற்ற மற்றும் உள்ளுணர்வு பயனர் அனுபவத்தை உருவாக்கும் கவனம் செலுத்தும் நுட்பங்களை நாங்கள் ஆராய்வோம்.

தாவல் இடைமுகத்தின் உடற்கூறியல்: முக்கிய கூறுகள்

இயக்கவியலுக்குள் நுழைவதற்கு முன், WAI-ARIA ஆசிரியர் நடைமுறைகளின் அடிப்படையில் ஒரு பொதுவான சொற்களஞ்சியத்தை நிறுவுவது அவசியம். ஒரு நிலையான தாவல் கூறு மூன்று முதன்மை கூறுகளைக் கொண்டுள்ளது:

இந்த கட்டமைப்பைப் புரிந்துகொள்வது ஒரு கூறு உருவாக்குவதற்கான முதல் படியாகும், இது பார்வைக்கு ஒத்திசைவானது மட்டுமல்லாமல், திரை வாசகர்கள் போன்ற உதவி தொழில்நுட்பங்களுக்கு சொற்பொருள் ரீதியாக புரிந்துகொள்ளக்கூடியது.

குறைபாடற்ற விசைப்பலகை வழிசெலுத்தலின் கோட்பாடுகள்

ஒரு பார்வைத்திறன் கொண்ட சுட்டி பயனருக்கு, தாவல்களுடன் தொடர்புகொள்வது நேரடியானது: நீங்கள் பார்க்க விரும்பும் தாவலைக் கிளிக் செய்கிறீர்கள். விசைப்பலகை மட்டும் பயனர்களுக்கு, அனுபவம் உள்ளுணர்வுடன் இருக்க வேண்டும். உதவித் தொழில்நுட்பத்தின் பயனர்கள் எதிர்பார்க்கும் விசைப்பலகை தொடர்புக்கான வலுவான, தரப்படுத்தப்பட்ட மாதிரியை WAI-ARIA ஆசிரியர் நடைமுறைகள் வழங்குகின்றன.

தாவல் பட்டியலை வழிநடத்துதல் (`role="tablist"`)

முதன்மை தொடர்பு தாவல்களின் பட்டியலுக்குள் நடக்கிறது. பக்கத்தில் உள்ள ஒவ்வொரு ஊடாடும் உறுப்பு வழியாகவும் செல்ல வேண்டிய அவசியமில்லாமல் பயனர்கள் தாவல்களை திறம்பட உலாவவும் தேர்ந்தெடுக்கவும் அனுமதிப்பதே குறிக்கோள்.

செயல்படுத்தும் மாதிரிகள்: தானியங்கி மற்றும் கையேடு

பயனர் அம்பு விசைகளைப் பயன்படுத்தி தாவல்களுக்கு இடையில் செல்லும்போது, தொடர்புடைய பேனல் எப்போது காண்பிக்கப்பட வேண்டும்? இரண்டு நிலையான மாதிரிகள் உள்ளன:

உங்கள் இடைமுகத்தின் உள்ளடக்கம் மற்றும் சூழலின் அடிப்படையில் உங்கள் செயல்படுத்தும் மாதிரியின் தேர்வு இருக்க வேண்டும். நீங்கள் எதைத் தேர்வு செய்தாலும், உங்கள் பயன்பாடு முழுவதும் நிலையானதாக இருங்கள்.

ஃபோகஸ் நிர்வாகத்தில் தேர்ச்சி பெறுதல்: பயன்பாட்டினைப் பாதிக்காத ஹீரோ

திறம்பட ஃபோகஸ் மேலாண்மை என்பது ஒரு மெதுவான இடைமுகத்திலிருந்து தடையற்ற ஒன்றை வேறுபடுத்துகிறது. இது நிரலாக்க ரீதியாக பயனரின் கவனம் எங்கே உள்ளது என்பதைக் கட்டுப்படுத்துவது, கூறு மூலம் ஒரு தர்க்கரீதியான மற்றும் கணிக்கக்கூடிய பாதையை உறுதி செய்வது.

ரோவிங் `tabindex` நுட்பம்

ரோவிங் `tabindex` என்பது தாவல் பட்டியல்கள் போன்ற கூறுகளுக்குள் விசைப்பலகை வழிசெலுத்தலின் மூலக்கல்லாகும். முழு விட்ஜெட்டும் ஒரு `Tab` நிறுத்தமாக செயல்படுவதே குறிக்கோள்.

இது எவ்வாறு செயல்படுகிறது என்பது இங்கே:

  1. தற்போது செயலில் இருக்கும் தாவல் உறுப்புக்கு `tabindex="0"` வழங்கப்படுகிறது. இது இயல்பான தாவல் வரிசையின் ஒரு பகுதியாக ஆக்குகிறது மற்றும் பயனர் கூறுக்குள் தாவும்போது கவனம் செலுத்த அனுமதிக்கிறது.
  2. மற்ற அனைத்து செயலற்ற தாவல் கூறுகளுக்கும் `tabindex="-1"` வழங்கப்படுகிறது. இது அவற்றை இயல்பான தாவல் வரிசையிலிருந்து நீக்குகிறது, எனவே பயனர் ஒவ்வொரு முறையும் `Tab` ஐ அழுத்த வேண்டியதில்லை. அவை இன்னும் நிரலாக்க ரீதியாக கவனம் செலுத்தப்படலாம், அதைத்தான் நாம் அம்பு விசை வழிசெலுத்தலுடன் செய்கிறோம்.

பயனர் அம்பு விசையை அழுத்தி தாவல் A இலிருந்து தாவல் B க்கு செல்லும்போது:

இந்த நுட்பம் பட்டியலில் எத்தனை தாவல்கள் இருந்தாலும், கூறு எப்போதும் பக்கத்தின் ஒட்டுமொத்த `Tab` வரிசையில் ஒரு நிலையையே ஆக்கிரமித்திருப்பதை உறுதி செய்கிறது.

தாவல் பேனல்களுக்குள் கவனம்

ஒரு தாவல் செயலில் இருந்தால், ஃபோகஸ் எங்கே செல்கிறது? செயலில் உள்ள தாவல் உறுப்பிலிருந்து `Tab` ஐ அழுத்துவது அதன் தொடர்புடைய தாவல் பேனலுக்குள் *உள்ளே* உள்ள முதல் ஃபோகஸ் செய்யக்கூடிய உறுப்புக்கு ஃபோகஸை நகர்த்தும் என்பதே எதிர்பார்க்கப்படும் நடத்தை. தாவல் பேனலில் ஃபோகஸ் செய்யக்கூடிய கூறுகள் எதுவும் இல்லையென்றால், `Tab` ஐ அழுத்துவது தாவல் பட்டியலுக்கு *பிறகு* பக்கத்தில் உள்ள அடுத்த ஃபோகஸ் செய்யக்கூடிய உறுப்புக்கு ஃபோகஸை நகர்த்த வேண்டும்.

இதேபோல், ஒரு பயனர் ஒரு தாவல் பேனலுக்குள் உள்ள கடைசி ஃபோகஸ் செய்யக்கூடிய உறுப்பில் கவனம் செலுத்தும்போது, `Tab` ஐ அழுத்துவது பேனலில் இருந்து பக்கத்தில் உள்ள அடுத்த ஃபோகஸ் செய்யக்கூடிய உறுப்புக்கு ஃபோகஸை நகர்த்த வேண்டும். பேனலுக்குள் உள்ள முதல் ஃபோகஸ் செய்யக்கூடிய உறுப்பிலிருந்து `Shift + Tab` ஐ அழுத்துவது ஃபோகஸை மீண்டும் செயலில் உள்ள தாவல் உறுப்புக்கு நகர்த்த வேண்டும்.

கவனம் சிதறடிப்பதைத் தவிர்க்கவும்: ஒரு தாவல் இடைமுகம் என்பது ஒரு மாதிரி உரையாடல் அல்ல. பயனர்கள் எப்போதும் தாவல் கூறு மற்றும் அதன் பேனல்களுக்குள் `Tab` விசையைப் பயன்படுத்தி செல்ல முடியும். கூறுகளில் கவனத்தை சிதறடிக்காதீர்கள், ஏனெனில் இது திசைதிருப்பவும் விரக்தியடையவும் செய்யும்.

ARIA வின் பங்கு: உதவி தொழில்நுட்பங்களுக்கு சொற்பொருளைத் தொடர்புகொள்வது

ARIA இல்லாமல், `

` உறுப்புகளுடன் கட்டப்பட்ட தாவல் இடைமுகம் ஒரு திரை ரீடருக்கு பொதுவான கொள்கலன்களின் தொகுப்பு மட்டுமே. கூறின் நோக்கம் மற்றும் நிலையைப் புரிந்துகொள்ள உதவி தொழில்நுட்பங்களை அனுமதிக்கும் அத்தியாவசிய சொற்பொருள் தகவலை ARIA வழங்குகிறது.

அத்தியாவசிய ARIA ரோல்கள் மற்றும் பண்புகள்

  • `role="tablist"`: தாவல்களைக் கொண்டிருக்கும் உறுப்பில் வைக்கப்பட்டுள்ளது. இது "இது தாவல்களின் பட்டியல்" என்று அறிவிக்கிறது.
  • `aria-label` அல்லது `aria-labelledby`: `tablist` உறுப்பில் அணுகக்கூடிய பெயரை வழங்க பயன்படுகிறது, அதாவது `aria-label="உள்ளடக்க வகைகள்"`.
  • `role="tab"`: ஒவ்வொரு தனிப்பட்ட தாவல் கட்டுப்பாட்டிலும் வைக்கப்பட்டுள்ளது (பெரும்பாலும் `
  • `aria-selected="true"` அல்லது `"false"`: ஒவ்வொரு `role="tab"` க்கும் ஒரு முக்கியமான நிலை பண்பு. `"true"` தற்போது செயலில் உள்ள தாவலைக் குறிக்கிறது, அதே நேரத்தில் `"false"` செயலற்ற தாவல்களைக் குறிக்கிறது. இந்த நிலை JavaScript உடன் மாறும் வகையில் புதுப்பிக்கப்பட வேண்டும்.
  • `aria-controls="panel-id"`: ஒவ்வொரு `role="tab"` க்கும் வைக்கப்பட்டது, இதன் மதிப்பு அது கட்டுப்படுத்தும் `tabpanel` உறுப்பின் `id` ஆக இருக்க வேண்டும். இது கட்டுப்பாடு மற்றும் அதன் உள்ளடக்கத்திற்கு இடையில் ஒரு நிரலாக்க இணைப்பை உருவாக்குகிறது.
  • `role="tabpanel"`: ஒவ்வொரு உள்ளடக்கப் பேனல் உறுப்பிலும் வைக்கப்பட்டுள்ளது. இது "இது ஒரு தாவலுடன் தொடர்புடைய உள்ளடக்கத்தின் பேனல்" என்று அறிவிக்கிறது.
  • `aria-labelledby="tab-id"`: ஒவ்வொரு `role="tabpanel"` க்கும் வைக்கப்பட்டது, இதன் மதிப்பு அதை கட்டுப்படுத்தும் `role="tab"` உறுப்பின் `id` ஆக இருக்க வேண்டும். இது தலைகீழ் தொடர்பை உருவாக்குகிறது, உதவித் தொழில்நுட்பங்கள் எந்த தாவல் பலகத்தைக் குறிக்கிறது என்பதைப் புரிந்துகொள்ள உதவுகிறது.

செயலற்ற உள்ளடக்கத்தை மறைத்தல்

செயலற்ற தாவல் பலகங்களை பார்வைக்கு மறைப்பது மட்டும் போதாது. அவை உதவித் தொழில்நுட்பங்களிலிருந்தும் மறைக்கப்பட வேண்டும். இதைச் செய்வதற்கான மிகவும் பயனுள்ள வழி, `hidden` பண்பு அல்லது CSS இல் `display: none;` ஐப் பயன்படுத்துவதாகும். இது பேனலின் உள்ளடக்கங்களை அணுகல்தன்மை மரத்திலிருந்து நீக்குகிறது, இதனால் தற்போது பொருத்தமில்லாத உள்ளடக்கத்தை அறிவிப்பதிலிருந்து ஒரு திரை ரீடரைத் தடுக்கிறது.

நடைமுறை செயல்படுத்தல்: ஒரு உயர் மட்ட உதாரணம்

இந்த ARIA ரோல்கள் மற்றும் பண்புகளை இணைக்கும் ஒரு எளிமைப்படுத்தப்பட்ட HTML கட்டமைப்பைப் பார்ப்போம்.

HTML அமைப்பு


<h2 id="tablist-label">கணக்கு அமைப்புகள்</h2>
<div role="tablist" aria-labelledby="tablist-label">
  <button id="tab-1" type="button" role="tab" aria-selected="true" aria-controls="panel-1" tabindex="0">
    சுயவிவரம்
  </button>
  <button id="tab-2" type="button" role="tab" aria-selected="false" aria-controls="panel-2" tabindex="-1">
    கடவுச்சொல்
  </button>
  <button id="tab-3" type="button" role="tab" aria-selected="false" aria-controls="panel-3" tabindex="-1">
    அறிவிப்புகள்
  </button>
</div>

<div id="panel-1" role="tabpanel" aria-labelledby="tab-1" tabindex="0">
  <p>சுயவிவரப் பேனலுக்கான உள்ளடக்கம்...</p>
</div>
<div id="panel-2" role="tabpanel" aria-labelledby="tab-2" tabindex="0" hidden>
  <p>கடவுச்சொல் பேனலுக்கான உள்ளடக்கம்...</p>
</div>
<div id="panel-3" role="tabpanel" aria-labelledby="tab-3" tabindex="0" hidden>
  <p>அறிவிப்புகள் பேனலுக்கான உள்ளடக்கம்...</p>
</div>

JavaScript தர்க்கம் (போலி குறியீடு)

`tablist` இல் விசைப்பலகை நிகழ்வுகளைக் கேட்பதற்கும் அதற்கேற்ப பண்புகளை புதுப்பிப்பதற்கும் உங்கள் JavaScript பொறுப்பாகும்.


const tablist = document.querySelector('[role="tablist"]');
const tabs = tablist.querySelectorAll('[role="tab"]');

tablist.addEventListener('keydown', (e) => {
  let currentTab = document.activeElement;
  let newTab;

  if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {
    // தேவையானால் சுற்றி வளைத்து, வரிசையில் அடுத்த தாவலைக் கண்டறியவும்
    newTab = getNextTab(currentTab);
  } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {
    // தேவையானால் சுற்றி வளைத்து, வரிசையில் முந்தைய தாவலைக் கண்டறியவும்
    newTab = getPreviousTab(currentTab);
  } else if (e.key === 'Home') {
    newTab = tabs[0];
  } else if (e.key === 'End') {
    newTab = tabs[tabs.length - 1];
  }

  if (newTab) {
    activateTab(newTab);
    e.preventDefault(); // அம்பு விசைகளுக்கான இயல்புநிலை உலாவியின் நடத்தையைத் தடுக்கவும்
  }
});

function activateTab(tab) {
  // மற்ற எல்லா தாவல்களையும் செயலிழக்கச் செய்யவும்
  tabs.forEach(t => {
    t.setAttribute('aria-selected', 'false');
    t.setAttribute('tabindex', '-1');
    document.getElementById(t.getAttribute('aria-controls')).hidden = true;
  });

  // புதிய தாவலைச் செயல்படுத்தவும்
  tab.setAttribute('aria-selected', 'true');
  tab.setAttribute('tabindex', '0');
  document.getElementById(tab.getAttribute('aria-controls')).hidden = false;
  tab.focus();
}

உலகளாவிய கருத்தாய்வுகள் மற்றும் சிறந்த நடைமுறைகள்

ஒரு உலகளாவிய பார்வையாளர்களுக்காக உருவாக்குவது ஒரு மொழி அல்லது கலாச்சாரத்திற்கு அப்பால் சிந்திப்பதைக் கோருகிறது. தாவல் இடைமுகங்களைப் பொறுத்தவரை, மிக முக்கியமான கருத்தாய்வு உரை திசை.

வலமிருந்து இடமாக (RTL) மொழி ஆதரவு

வலமிருந்து இடமாகப் படிக்கப்படும் அரபு, ஹீப்ரு மற்றும் பெர்சியன் போன்ற மொழிகளுக்கு, விசைப்பலகை வழிசெலுத்தல் மாதிரி பிரதிபலிக்கப்பட வேண்டும். ஒரு RTL சூழலில்:

  • `வலது அம்பு` விசை ஃபோகஸை முந்தைய தாவலுக்கு நகர்த்த வேண்டும்.
  • `இடது அம்பு` விசை ஃபோகஸை அடுத்த தாவலுக்கு நகர்த்த வேண்டும்.

ஆவணத்தின் திசையை (`dir="rtl"`) கண்டறிந்து அதற்கேற்ப இடது மற்றும் வலது அம்பு விசைகளுக்கான தர்க்கத்தை மாற்றுவதன் மூலம் இதை JavaScript இல் செயல்படுத்த முடியும். இந்த சிறிய சரிசெய்தல் உலகளவில் மில்லியன் கணக்கான பயனர்களுக்கு ஒரு உள்ளுணர்வு அனுபவத்தை வழங்குவதற்கு மிகவும் முக்கியமானது.

காட்சி ஃபோகஸ் அறிகுறி

காட்சிக்குப் பின்னால் கவனம் சரியாக நிர்வகிக்கப்படுவது மட்டும் போதாது; அது தெளிவாகத் தெரியும். உங்கள் கவனம் செலுத்திய தாவல்கள் மற்றும் தாவல் பலகங்களுக்குள் உள்ள ஊடாடும் கூறுகள் மிகவும் தெரியும் ஃபோகஸ் வெளிப்புறத்தைக் கொண்டிருப்பதை உறுதிப்படுத்தவும் (எ.கா., ஒரு முக்கிய வளையம் அல்லது எல்லை). மிகவும் வலுவான மற்றும் அணுகக்கூடிய மாற்றீட்டை வழங்காமல் `outline: none;` மூலம் வெளிப்புறங்களை அகற்றுவதைத் தவிர்க்கவும். இது அனைத்து விசைப்பலகை பயனர்களுக்கும் மிகவும் முக்கியமானது, ஆனால் குறிப்பாக குறைந்த பார்வை உள்ளவர்களுக்கு.

முடிவு: உள்ளடக்கம் மற்றும் பயன்பாட்டிற்கான உருவாக்குதல்

உண்மையில் அணுகக்கூடிய மற்றும் பயனர் நட்பு தாவல் இடைமுகத்தை உருவாக்குவது ஒரு வேண்டுமென்றே செயல்முறையாகும். காட்சி வடிவமைப்பைக் கடந்து சென்று, கூறுகளின் அடிப்படை அமைப்பு, சொற்பொருள் மற்றும் நடத்தை ஆகியவற்றுடன் ஈடுபட வேண்டும். தரப்படுத்தப்பட்ட விசைப்பலகை வழிசெலுத்தல் வடிவங்களைத் தழுவி, ARIA ரோல்கள் மற்றும் பண்புகளைச் சரியாகச் செயல்படுத்தி, கவனத்தை துல்லியமாக நிர்வகிப்பதன் மூலம், நீங்கள் இணக்கமான இடைமுகங்களை மட்டுமல்ல, அனைத்து பயனர்களுக்கும் உண்மையிலேயே உள்ளுணர்வு மற்றும் அதிகாரமளிக்கும் இடைமுகங்களையும் உருவாக்க முடியும்.

இந்த முக்கிய கொள்கைகளை நினைவில் கொள்ளுங்கள்:

  • ஒரு தாவல் நிறுத்தத்தைப் பயன்படுத்தவும்: முழு கூறையும் அம்பு விசைகள் மூலம் செல்லக்கூடியதாக மாற்ற ரோவிங் `tabindex` நுட்பத்தைப் பயன்படுத்தவும்.
  • ARIA உடன் தொடர்புகொள்ளவும்: சொற்பொருள் பொருளை வழங்க `role="tablist"`, `role="tab"` மற்றும் `role="tabpanel"` உடன் அவற்றின் தொடர்புடைய பண்புகளையும் (`aria-selected`, `aria-controls`) பயன்படுத்தவும்.
  • லாஜிக்கலாக கவனத்தை நிர்வகிக்கவும்: கவனம் தாவலில் இருந்து பேனலுக்கு நகர்ந்து கூறுக்கு வெளியே கணிக்கக்கூடிய வகையில் நகர்வதை உறுதிப்படுத்தவும்.
  • செயலற்ற உள்ளடக்கத்தை சரியாக மறைக்கவும்: அணுகல்தன்மை மரத்திலிருந்து செயலற்ற பேனல்களை அகற்ற `hidden` அல்லது `display: none` ஐப் பயன்படுத்தவும்.
  • முழுமையாக சோதிக்கவும்: விசைப்பலகை மற்றும் பல்வேறு திரை வாசகர்கள் (NVDA, JAWS, VoiceOver) ஆகியவற்றை மட்டும் பயன்படுத்தி உங்கள் செயல்பாட்டைச் சோதிக்கவும், இது அனைவருக்கும் எதிர்பார்த்தபடி வேலை செய்கிறதா என்பதை உறுதிப்படுத்தவும்.

இந்த விவரங்களில் முதலீடு செய்வதன் மூலம், நாம் ஒரு உள்ளடக்கிய வலைக்கு பங்களிக்கிறோம்-ஒன்று, அங்கு சிக்கலான தகவல்கள் அனைவரும் டிஜிட்டல் உலகிற்கு எவ்வாறு செல்லுகிறார்கள் என்பதைப் பொருட்படுத்தாமல், அனைவருக்கும் அணுகக்கூடியது.