ಕನ್ನಡ

ಸುಲಭವಾಗಿ ಬಳಸಲು ಸಾಧ್ಯವಾಗುವ ಮತ್ತು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಟ್ಯಾಬ್ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಿ. ಜಾಗತಿಕ ಪ್ರೇಕ್ಷಕರಿಗಾಗಿ ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಷನ್, ARIA ಪಾತ್ರಗಳು ಮತ್ತು ದೃಢವಾದ ಫೋಕಸ್ ನಿರ್ವಹಣೆಗಾಗಿ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ತಿಳಿಯಿರಿ.

ಟ್ಯಾಬ್ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು: ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಷನ್ ಮತ್ತು ಫೋಕಸ್ ನಿರ್ವಹಣೆಯ ಬಗ್ಗೆ ಒಂದು ಆಳವಾದ ಅಧ್ಯಯನ

ಟ್ಯಾಬ್ಡ್ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಆಧುನಿಕ ವೆಬ್ ವಿನ್ಯಾಸದ ಮೂಲಾಧಾರವಾಗಿದೆ. ಉತ್ಪನ್ನ ಪುಟಗಳು ಮತ್ತು ಬಳಕೆದಾರರ ಡ್ಯಾಶ್‌ಬೋರ್ಡ್‌ಗಳಿಂದ ಹಿಡಿದು ಸಂಕೀರ್ಣ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳವರೆಗೆ, ಅವು ವಿಷಯವನ್ನು ಸಂಘಟಿಸಲು ಮತ್ತು ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಸರಳಗೊಳಿಸಲು ಸೊಗಸಾದ ಪರಿಹಾರವನ್ನು ಒದಗಿಸುತ್ತವೆ. ಅವು ಮೇಲ್ನೋಟಕ್ಕೆ ಸರಳವಾಗಿ ಕಾಣಿಸಬಹುದಾದರೂ, ನಿಜವಾಗಿಯೂ ಪರಿಣಾಮಕಾರಿ ಮತ್ತು ಪ್ರವೇಶಿಸಬಹುದಾದ ಟ್ಯಾಬ್ ಘಟಕವನ್ನು ರಚಿಸಲು ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಷನ್ ಮತ್ತು ನಿಖರವಾದ ಫೋಕಸ್ ನಿರ್ವಹಣೆಯ ಬಗ್ಗೆ ಆಳವಾದ ತಿಳುವಳಿಕೆ ಅಗತ್ಯವಿದೆ. ಕಳಪೆಯಾಗಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲಾದ ಟ್ಯಾಬ್ ಇಂಟರ್ಫೇಸ್ ಕೀಬೋರ್ಡ್‌ಗಳು ಅಥವಾ ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಅವಲಂಬಿಸಿರುವ ಬಳಕೆದಾರರಿಗೆ ದುಸ್ತರ ತಡೆಯಾಗಬಹುದು, ಇದರಿಂದಾಗಿ ಅವರು ನಿಮ್ಮ ವಿಷಯದಿಂದ ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಹೊರಗುಳಿಯುವಂತಾಗುತ್ತದೆ.

ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ ವೆಬ್ ಡೆವಲಪರ್‌ಗಳು, UI/UX ವಿನ್ಯಾಸಕರು ಮತ್ತು ಮೂಲಭೂತ ಅಂಶಗಳನ್ನು ಮೀರಿ ಹೋಗಲು ಬಯಸುವ ಪ್ರವೇಶಿಸುವಿಕೆ ಪ್ರತಿಪಾದಕರಿಗಾಗಿ ಆಗಿದೆ. ಕೀಬೋರ್ಡ್ ಸಂವಹನಕ್ಕಾಗಿ ಅಂತರರಾಷ್ಟ್ರೀಯವಾಗಿ ಗುರುತಿಸಲ್ಪಟ್ಟ ಮಾದರಿಗಳು, ಅರ್ಥಪೂರ್ಣ ಸನ್ನಿವೇಶವನ್ನು ಒದಗಿಸುವಲ್ಲಿ ARIA (ಅಕ್ಸೆಸಿಬಲ್ ರಿಚ್ ಇಂಟರ್ನೆಟ್ ಅಪ್ಲಿಕೇಶನ್ಸ್) ನ ನಿರ್ಣಾಯಕ ಪಾತ್ರ ಮತ್ತು ಪ್ರತಿಯೊಬ್ಬರಿಗೂ, ಅವರ ಸ್ಥಳವನ್ನು ಲೆಕ್ಕಿಸದೆ ಅಥವಾ ಅವರು ವೆಬ್‌ನೊಂದಿಗೆ ಹೇಗೆ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆ, ತಡೆರಹಿತ ಮತ್ತು ಅರ್ಥಗರ್ಭಿತ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ರಚಿಸುವ ಫೋಕಸ್ ಅನ್ನು ನಿರ್ವಹಿಸುವ ಸೂಕ್ಷ್ಮ ತಂತ್ರಗಳನ್ನು ನಾವು ಅನ್ವೇಷಿಸುತ್ತೇವೆ.

ಟ್ಯಾಬ್ ಇಂಟರ್ಫೇಸ್‌ನ ರಚನೆ: ಪ್ರಮುಖ ಘಟಕಗಳು

ಯಾಂತ್ರಿಕತೆಗೆ ಧುಮುಕುವ ಮೊದಲು, WAI-ARIA ಲೇಖಕರ ಅಭ್ಯಾಸಗಳ ಆಧಾರದ ಮೇಲೆ ಸಾಮಾನ್ಯ ಶಬ್ದಕೋಶವನ್ನು ಸ್ಥಾಪಿಸುವುದು ಅತ್ಯಗತ್ಯ. ಪ್ರಮಾಣಿತ ಟ್ಯಾಬ್ ಘಟಕವು ಮೂರು ಪ್ರಾಥಮಿಕ ಅಂಶಗಳನ್ನು ಒಳಗೊಂಡಿದೆ:

ಈ ರಚನೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ದೃಷ್ಟಿಗೋಚರವಾಗಿ ಸುಸಂಬದ್ಧವಾಗಿರುವುದಲ್ಲದೆ ಸ್ಕ್ರೀನ್ ರೀಡರ್‌ಗಳಂತಹ ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನಗಳಿಗೆ ಅರ್ಥವಾಗುವಂತಹ ಘಟಕವನ್ನು ನಿರ್ಮಿಸುವ ಮೊದಲ ಹೆಜ್ಜೆಯಾಗಿದೆ.

ದೋಷರಹಿತ ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಷನ್‌ನ ತತ್ವಗಳು

ದೃಷ್ಟಿ ಹೊಂದಿರುವ ಮೌಸ್ ಬಳಕೆದಾರರಿಗೆ, ಟ್ಯಾಬ್‌ಗಳೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುವುದು ನೇರವಾಗಿರುತ್ತದೆ: ನೀವು ನೋಡಲು ಬಯಸುವ ಟ್ಯಾಬ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. ಕೀಬೋರ್ಡ್-ಮಾತ್ರ ಬಳಕೆದಾರರಿಗೆ, ಅನುಭವವು ಅಂತೆಯೇ ಅರ್ಥಗರ್ಭಿತವಾಗಿರಬೇಕು. WAI-ARIA ಲೇಖಕರ ಅಭ್ಯಾಸಗಳು ಕೀಬೋರ್ಡ್ ಸಂವಹನಕ್ಕಾಗಿ ದೃಢವಾದ, ಪ್ರಮಾಣೀಕೃತ ಮಾದರಿಯನ್ನು ಒದಗಿಸುತ್ತವೆ, ಅದನ್ನು ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನದ ಬಳಕೆದಾರರು ನಿರೀಕ್ಷಿಸುತ್ತಾರೆ.

ಟ್ಯಾಬ್ ಪಟ್ಟಿಯನ್ನು ನ್ಯಾವಿಗೇಟ್ ಮಾಡುವುದು (`role="tablist"`)

ಪ್ರಾಥಮಿಕ ಸಂವಹನ ಟ್ಯಾಬ್‌ಗಳ ಪಟ್ಟಿಯೊಳಗೆ ನಡೆಯುತ್ತದೆ. ಪುಟದಲ್ಲಿನ ಪ್ರತಿಯೊಂದು ಸಂವಾದಾತ್ಮಕ ಅಂಶದ ಮೂಲಕ ನ್ಯಾವಿಗೇಟ್ ಮಾಡದೆಯೇ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡಲು ಮತ್ತು ಆಯ್ಕೆ ಮಾಡಲು ಬಳಕೆದಾರರಿಗೆ ಅವಕಾಶ ನೀಡುವುದು ಗುರಿಯಾಗಿದೆ.

ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಮಾದರಿಗಳು: ಸ್ವಯಂಚಾಲಿತ ವಿರುದ್ಧ ಕೈಪಿಡಿ

ಬಳಕೆದಾರರು ಬಾಣದ ಕೀಲಿಗಳನ್ನು ಬಳಸಿ ಟ್ಯಾಬ್‌ಗಳ ನಡುವೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿದಾಗ, ಅನುಗುಣವಾದ ಪ್ಯಾನಲ್ ಅನ್ನು ಯಾವಾಗ ಪ್ರದರ್ಶಿಸಬೇಕು? ಎರಡು ಪ್ರಮಾಣಿತ ಮಾದರಿಗಳಿವೆ:

ನಿಮ್ಮ ಸಕ್ರಿಯಗೊಳಿಸುವಿಕೆ ಮಾದರಿಯ ಆಯ್ಕೆಯು ನಿಮ್ಮ ಇಂಟರ್ಫೇಸ್‌ನ ವಿಷಯ ಮತ್ತು ಸನ್ನಿವೇಶವನ್ನು ಆಧರಿಸಿರಬೇಕು. ನೀವು ಯಾವುದನ್ನು ಆರಿಸಿಕೊಂಡರೂ, ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನಾದ್ಯಂತ ಸ್ಥಿರವಾಗಿರಿ.

ಫೋಕಸ್ ನಿರ್ವಹಣೆಯನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು: ಬಳಕೆಯ ಸುಲಭತೆಯ ಕಥೆ ಹೇಳದ ನಾಯಕ

ಪರಿಣಾಮಕಾರಿ ಫೋಕಸ್ ನಿರ್ವಹಣೆಯು ಒಂದು ಅನನುಕೂಲಕರ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ತಡೆರಹಿತ ಒಂದರಿಂದ ಬೇರ್ಪಡಿಸುತ್ತದೆ. ಇದು ಪ್ರೋಗ್ರಾಮಿಕ್ ಆಗಿ ಬಳಕೆದಾರರ ಫೋಕಸ್ ಎಲ್ಲಿದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸುವುದು, ಘಟಕದ ಮೂಲಕ ತಾರ್ಕಿಕ ಮತ್ತು ಊಹಿಸಬಹುದಾದ ಮಾರ್ಗವನ್ನು ಖಚಿತಪಡಿಸುವುದು.

ರೋವಿಂಗ್ `tabindex` ತಂತ್ರ

ರೋವಿಂಗ್ `tabindex` ಟ್ಯಾಬ್ ಪಟ್ಟಿಗಳಂತಹ ಘಟಕಗಳಲ್ಲಿ ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಷನ್‌ನ ಮೂಲಾಧಾರವಾಗಿದೆ. ಸಂಪೂರ್ಣ ವಿಜೆಟ್ ಒಂದೇ `Tab` ಸ್ಟಾಪ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದು ಗುರಿಯಾಗಿದೆ.

ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದು ಇಲ್ಲಿದೆ:

  1. ಪ್ರಸ್ತುತ ಸಕ್ರಿಯ ಟ್ಯಾಬ್ ಅಂಶಕ್ಕೆ `tabindex="0"` ನೀಡಲಾಗುತ್ತದೆ. ಇದು ನೈಸರ್ಗಿಕ ಟ್ಯಾಬ್ ಕ್ರಮದ ಭಾಗವಾಗಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರು ಘಟಕಕ್ಕೆ ಟ್ಯಾಬ್ ಮಾಡಿದಾಗ ಫೋಕಸ್ ಅನ್ನು ಸ್ವೀಕರಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
  2. ಇತರ ಎಲ್ಲಾ ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್ ಅಂಶಗಳಿಗೆ `tabindex="-1"` ನೀಡಲಾಗುತ್ತದೆ. ಇದು ಅವುಗಳನ್ನು ನೈಸರ್ಗಿಕ ಟ್ಯಾಬ್ ಕ್ರಮದಿಂದ ತೆಗೆದುಹಾಕುತ್ತದೆ, ಆದ್ದರಿಂದ ಬಳಕೆದಾರರು ಪ್ರತಿಯೊಂದರ ಮೂಲಕವೂ `Tab` ಅನ್ನು ಒತ್ತಬೇಕಾಗಿಲ್ಲ. ಅವುಗಳನ್ನು ಇನ್ನೂ ಪ್ರೋಗ್ರಾಮಿಕ್ ಆಗಿ ಕೇಂದ್ರೀಕರಿಸಬಹುದು, ಅದು ನಾವು ಬಾಣದ ಕೀಲಿ ನ್ಯಾವಿಗೇಷನ್‌ನೊಂದಿಗೆ ಮಾಡುವುದು.

ಬಳಕೆದಾರರು ಟ್ಯಾಬ್ ಎ ಯಿಂದ ಟ್ಯಾಬ್ ಬಿ ಗೆ ಸರಿಸಲು ಬಾಣದ ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ:

ಈ ತಂತ್ರವು ಪಟ್ಟಿಯಲ್ಲಿ ಎಷ್ಟು ಟ್ಯಾಬ್‌ಗಳಿದ್ದರೂ, ಘಟಕವು ಪುಟದ ಒಟ್ಟಾರೆ `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"` ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಗುರುತಿಸುತ್ತದೆ. ಈ ಸ್ಥಿತಿಯನ್ನು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನೊಂದಿಗೆ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ನವೀಕರಿಸಬೇಕು.
  • `aria-controls="panel-id"`: ಪ್ರತಿ `role="tab"` ನಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ, ಇದರ ಮೌಲ್ಯವು ಅದು ನಿಯಂತ್ರಿಸುವ `tabpanel` ಅಂಶದ `id` ಆಗಿರಬೇಕು. ಇದು ನಿಯಂತ್ರಣ ಮತ್ತು ಅದರ ವಿಷಯದ ನಡುವೆ ಪ್ರೋಗ್ರಾಮಿಕ್ ಲಿಂಕ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
  • `role="tabpanel"`: ಪ್ರತಿ ವಿಷಯ ಫಲಕ ಅಂಶದ ಮೇಲೆ ಇರಿಸಲಾಗಿದೆ. ಇದು, "ಇದು ಟ್ಯಾಬ್‌ಗೆ ಸಂಬಂಧಿಸಿದ ವಿಷಯದ ಫಲಕ" ಎಂದು ಘೋಷಿಸುತ್ತದೆ.
  • `aria-labelledby="tab-id"`: ಪ್ರತಿ `role="tabpanel"` ನಲ್ಲಿ ಇರಿಸಲಾಗಿದೆ, ಇದರ ಮೌಲ್ಯವು ಅದನ್ನು ನಿಯಂತ್ರಿಸುವ `role="tab"` ಅಂಶದ `id` ಆಗಿರಬೇಕು. ಇದು ರಿವರ್ಸ್ ಅಸೋಸಿಯೇಷನ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ, ಇದು ಯಾವ ಟ್ಯಾಬ್ ಫಲಕವನ್ನು ಲೇಬಲ್ ಮಾಡುತ್ತದೆ ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನಗಳಿಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

ನಿಷ್ಕ್ರಿಯ ವಿಷಯವನ್ನು ಮರೆಮಾಡುವುದು

ನಿಷ್ಕ್ರಿಯ ಟ್ಯಾಬ್ ಪ್ಯಾನಲ್‌ಗಳನ್ನು ದೃಷ್ಟಿಗೋಚರವಾಗಿ ಮರೆಮಾಡುವುದು ಸಾಕಾಗುವುದಿಲ್ಲ. ಅವುಗಳನ್ನು ಸಹಾಯಕ ತಂತ್ರಜ್ಞಾನಗಳಿಂದಲೂ ಮರೆಮಾಡಬೇಕು. ಇದನ್ನು ಮಾಡಲು ಅತ್ಯಂತ ಪರಿಣಾಮಕಾರಿ ಮಾರ್ಗವೆಂದರೆ CSS ನಲ್ಲಿ `hidden` ಗುಣಲಕ್ಷಣ ಅಥವಾ `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>

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ತರ್ಕ (ನಕಲಿ ಕೋಡ್)

`tablist` ನಲ್ಲಿ ಕೀಬೋರ್ಡ್ ಈವೆಂಟ್‌ಗಳನ್ನು ಆಲಿಸಲು ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಗುಣಲಕ್ಷಣಗಳನ್ನು ನವೀಕರಿಸಲು ನಿಮ್ಮ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಜವಾಬ್ದಾರವಾಗಿರುತ್ತದೆ.


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 ಸನ್ನಿವೇಶದಲ್ಲಿ:

  • `Right Arrow` ಕೀ ಫೋಕಸ್ ಅನ್ನು ಹಿಂದಿನ ಟ್ಯಾಬ್‌ಗೆ ಸರಿಸಬೇಕು.
  • `Left Arrow` ಕೀ ಫೋಕಸ್ ಅನ್ನು ಮುಂದಿನ ಟ್ಯಾಬ್‌ಗೆ ಸರಿಸಬೇಕು.

ಡಾಕ್ಯುಮೆಂಟ್‌ನ ದಿಕ್ಕನ್ನು (`dir="rtl"`) ಪತ್ತೆಹಚ್ಚುವ ಮೂಲಕ ಮತ್ತು ಎಡ ಮತ್ತು ಬಲ ಬಾಣದ ಕೀಲಿಗಳ ತರ್ಕವನ್ನು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಹಿಮ್ಮುಖಗೊಳಿಸುವ ಮೂಲಕ ಇದನ್ನು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಅನುಷ್ಠಾನಗೊಳಿಸಬಹುದು. ಪ್ರಪಂಚದಾದ್ಯಂತದ ಲಕ್ಷಾಂತರ ಬಳಕೆದಾರರಿಗೆ ಅರ್ಥಗರ್ಭಿತ ಅನುಭವವನ್ನು ಒದಗಿಸಲು ಈ ತೋರಿಕೆಯಲ್ಲಿ ಸಣ್ಣ ಹೊಂದಾಣಿಕೆ ನಿರ್ಣಾಯಕವಾಗಿದೆ.

ದೃಶ್ಯ ಫೋಕಸ್ ಸೂಚನೆ

ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಫೋಕಸ್ ಅನ್ನು ಸರಿಯಾಗಿ ನಿರ್ವಹಿಸುವುದು ಸಾಕಾಗುವುದಿಲ್ಲ; ಅದು ಸ್ಪಷ್ಟವಾಗಿ ಗೋಚರಿಸಬೇಕು. ನಿಮ್ಮ ಫೋಕಸ್ ಮಾಡಿದ ಟ್ಯಾಬ್‌ಗಳು ಮತ್ತು ಟ್ಯಾಬ್ ಪ್ಯಾನೆಲ್‌ಗಳಲ್ಲಿನ ಸಂವಾದಾತ್ಮಕ ಅಂಶಗಳು ಹೆಚ್ಚು ಗೋಚರಿಸುವ ಫೋಕಸ್ ಔಟ್‌ಲೈನ್ (ಉದಾಹರಣೆಗೆ, ಪ್ರಮುಖ ಉಂಗುರ ಅಥವಾ ಗಡಿ) ಅನ್ನು ಹೊಂದಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಹೆಚ್ಚು ದೃಢವಾದ ಮತ್ತು ಪ್ರವೇಶಿಸಬಹುದಾದ ಪರ್ಯಾಯವನ್ನು ಒದಗಿಸದೆ `outline: none;` ನೊಂದಿಗೆ ಔಟ್‌ಲೈನ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದನ್ನು ತಪ್ಪಿಸಿ. ಇದು ಎಲ್ಲಾ ಕೀಬೋರ್ಡ್ ಬಳಕೆದಾರರಿಗೆ ನಿರ್ಣಾಯಕವಾಗಿದೆ, ಆದರೆ ವಿಶೇಷವಾಗಿ ಕಡಿಮೆ ದೃಷ್ಟಿ ಹೊಂದಿರುವವರಿಗೆ.

ತೀರ್ಮಾನ: ಒಳಗೊಳ್ಳುವಿಕೆ ಮತ್ತು ಬಳಕೆಯ ಸುಲಭತೆಗಾಗಿ ನಿರ್ಮಿಸುವುದು

ನಿಜವಾಗಿಯೂ ಪ್ರವೇಶಿಸಬಹುದಾದ ಮತ್ತು ಬಳಕೆದಾರ ಸ್ನೇಹಿ ಟ್ಯಾಬ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ರಚಿಸುವುದು ಉದ್ದೇಶಪೂರ್ವಕ ಪ್ರಕ್ರಿಯೆ. ಇದಕ್ಕೆ ದೃಶ್ಯ ವಿನ್ಯಾಸವನ್ನು ಮೀರಿ ಚಲಿಸುವುದು ಮತ್ತು ಘಟಕದ ಆಧಾರವಾಗಿರುವ ರಚನೆ, ಅರ್ಥ ಮತ್ತು ನಡವಳಿಕೆಯೊಂದಿಗೆ ತೊಡಗಿಸಿಕೊಳ್ಳುವುದು ಅಗತ್ಯವಿದೆ. ಪ್ರಮಾಣೀಕೃತ ಕೀಬೋರ್ಡ್ ನ್ಯಾವಿಗೇಷನ್ ಮಾದರಿಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ARIA ಪಾತ್ರಗಳು ಮತ್ತು ಗುಣಲಕ್ಷಣಗಳನ್ನು ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೂಲಕ ಮತ್ತು ಫೋಕಸ್ ಅನ್ನು ನಿಖರವಾಗಿ ನಿರ್ವಹಿಸುವ ಮೂಲಕ, ನೀವು ಕೇವಲ ಅನುಸರಣೆಯಲ್ಲದೆ, ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ನಿಜವಾಗಿಯೂ ಅರ್ಥಗರ್ಭಿತ ಮತ್ತು ಸಬಲೀಕರಣ ನೀಡುವ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು.

ಈ ಪ್ರಮುಖ ತತ್ವಗಳನ್ನು ನೆನಪಿಡಿ:

  • ಒಂದೇ ಟ್ಯಾಬ್ ಸ್ಟಾಪ್ ಬಳಸಿ: ಇಡೀ ಘಟಕವನ್ನು ಬಾಣದ ಕೀಲಿಗಳೊಂದಿಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಲು ರೋವಿಂಗ್ `tabindex` ತಂತ್ರವನ್ನು ಬಳಸಿ.
  • ARIA ನೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಿ: ಅರ್ಥಪೂರ್ಣ ಅರ್ಥವನ್ನು ಒದಗಿಸಲು `role="tablist"`, `role="tab"` ಮತ್ತು `role="tabpanel"` ಅನ್ನು ಅವುಗಳ ಸಂಬಂಧಿತ ಗುಣಲಕ್ಷಣಗಳೊಂದಿಗೆ (`aria-selected`, `aria-controls`) ಬಳಸಿ.
  • ತಾರ್ಕಿಕವಾಗಿ ಫೋಕಸ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ: ಫೋಕಸ್ ಟ್ಯಾಬ್‌ನಿಂದ ಪ್ಯಾನೆಲ್‌ಗೆ ಮತ್ತು ಘಟಕದಿಂದ ಹೊರಗೆ ಊಹಿಸಬಹುದಾದ ರೀತಿಯಲ್ಲಿ ಚಲಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
  • ನಿಷ್ಕ್ರಿಯ ವಿಷಯವನ್ನು ಸರಿಯಾಗಿ ಮರೆಮಾಡಿ: ಪ್ರವೇಶಿಸುವಿಕೆ ಟ್ರೀನಿಂದ ನಿಷ್ಕ್ರಿಯ ಪ್ಯಾನೆಲ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕಲು `hidden` ಅಥವಾ `display: none` ಬಳಸಿ.
  • ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಿ: ಪ್ರತಿಯೊಬ್ಬರಿಗೂ ನಿರೀಕ್ಷೆಯಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಕೀಬೋರ್ಡ್ ಮತ್ತು ವಿವಿಧ ಸ್ಕ್ರೀನ್ ರೀಡರ್‌ಗಳನ್ನು (NVDA, JAWS, VoiceOver) ಮಾತ್ರ ಬಳಸಿ ನಿಮ್ಮ ಅನುಷ್ಠಾನವನ್ನು ಪರೀಕ್ಷಿಸಿ.

ಈ ವಿವರಗಳಲ್ಲಿ ಹೂಡಿಕೆ ಮಾಡುವ ಮೂಲಕ, ನಾವು ಹೆಚ್ಚು ಒಳಗೊಳ್ಳುವ ವೆಬ್‌ಗೆ ಕೊಡುಗೆ ನೀಡುತ್ತೇವೆ- ಅಲ್ಲಿ ಸಂಕೀರ್ಣ ಮಾಹಿತಿಯು ಎಲ್ಲರಿಗೂ ಪ್ರವೇಶಿಸಬಹುದಾಗಿದೆ, ಅವರು ಡಿಜಿಟಲ್ ಜಗತ್ತನ್ನು ಹೇಗೆ ನ್ಯಾವಿಗೇಟ್ ಮಾಡಿದರೂ ಪರವಾಗಿಲ್ಲ.