برنامه های وب قابل دسترسی با Angular، TypeScript و AllyJS

TypeScript یک زبان قدرتمند است که امنیت نوع را به کد جاوا اسکریپت شما می آورد. در دنیای توسعه وب، به ویژه در چارچوب هایی مانند Angular، به طور فزاینده ای محبوب شده است. با افزایش نگرانیهای دسترسی و نیاز به توسعه وب فراگیرتر، TypeScript A11y به یک جنبه مهم در ایجاد برنامههای کاربردی وب تبدیل شده است.
در این مقاله، نحوه استفاده از TypeScript A11y در Angular را بررسی خواهیم کرد تا برنامه های خود را برای کاربران دارای معلولیت در دسترس تر کنیم.
TypeScript A11y چیست؟
TypeScript A11y مجموعهای از APIها است که دسترسی ایمن به مدل Object Accessibility (AOM) در TypeScript را فراهم میکند. AOM یک مشخصات API جدید است که راهی برای دسترسی به درخت دسترسی یک صفحه وب فراهم می کند. این به توسعه دهندگان اجازه می دهد تا به طور برنامه نویسی ویژگی های دسترسی عناصر HTML را بررسی و اصلاح کنند.
استفاده از TypeScript A11y در Angular
Angular یک فریمورک محبوب برای ساخت برنامه های پیچیده وب است. مجموعه ای غنی از ویژگی ها را فراهم می کند که ایجاد رابط های کاربری پویا و تعاملی را آسان می کند. Angular همچنین از TypeScript خارج از جعبه پشتیبانی می کند و آن را به یک پلت فرم ایده آل برای استفاده از TypeScript A11y تبدیل می کند.
برای استفاده از TypeScript A11y در Angular، ابتدا باید بسته @types/accessibility را نصب کنید. این بسته تعاریف TypeScript را برای AOM API ارائه می دهد. می توانید آن را با استفاده از npm نصب کنید:
npm install @types/accessibility
پس از نصب بسته، می توانید رابط Accessibility را از بسته @types/accessibility وارد کرده و از آن در اجزای Angular خود استفاده کنید:
import { Accessibility } from '@types/accessibility';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(private elementRef: ElementRef) {}
ngOnInit() {
const element = this.elementRef.nativeElement as HTMLElement;
const aom = new Accessibility(element);
const role = aom.getRole();
console.log(role);
}
}
در این مثال، ما از رابط Accessibility برای دریافت نقش یک عنصر HTML استفاده می کنیم. ابتدا یک نمونه از کلاس Accessibility با ارسال عنصر به عنوان پارامتر ایجاد می کنیم. سپس از متد getRole() برای دریافت نقش عنصر و ورود آن به کنسول استفاده می کنیم.
بهترین شیوه های دسترسی
هنگام استفاده از TypeScript A11y در Angular، برخی از بهترین روشها وجود دارد که باید برای اطمینان از در دسترس بودن برنامه خود دنبال کنید:
-
از عناصر HTML معنایی استفاده کنید: از عناصر HTML استفاده کنید که معنای واضح و معنایی دارند، مانند
<nav>
،<article>
، و<section>
. این کار باعث میشود صفحهخوانها راحتتر به صفحه پیمایش کنند. -
متن جایگزین برای تصاویر ارائه دهید: متن جایگزین توصیفی برای تصاویر ارائه دهید تا کاربران دارای اختلالات بینایی بتوانند بفهمند تصویر چه چیزی را نشان می دهد.
<img src="my-image.jpg" alt="A red sports car driving on a winding road">
-
تست با صفحهخوانها: برنامه خود را با صفحهخوانها تست کنید تا مطمئن شوید که کاملاً در دسترس است. بسیاری از صفحهخوانهای رایگان در دسترس هستند، مانند
NVDA
وVoiceOver
. -
از ویژگی های ARIA استفاده کنید: از ویژگی های ARIA (Accessible Rich Internet Applications) برای ارائه اطلاعات اضافی درباره ویژگی های دسترسی یک عنصر، مانند نقش یا وضعیت آن، استفاده کنید.
- در مثال زیر، ما از ویژگیهای ARIA برای ارائه اطلاعات اضافی در مورد دکمه جابجایی و پانل مرتبط با آن استفاده میکنیم تا کاربران فناوریهای کمکی به آن دسترسی داشته باشند.
<button [attr.aria-expanded]="isOpen ? 'true' : 'false'"
[attr.aria-controls]="panelId"
(click)="togglePanel()">
Toggle Panel
</button>
<div [id]="panelId" [hidden]="!isOpen" [attr.aria-hidden]="!isOpen ? 'true' : 'false'">
Panel Content
</div>
نتیجه
TypeScript A11y یکی از جنبه های مهم ایجاد برنامه های کاربردی وب در دسترس است. این یک روش ایمن برای دسترسی به مدل شیء دسترسی در TypeScript ارائه می دهد و ایجاد و نگهداری کد قابل دسترس را آسان تر می کند. با پیروی از بهترین شیوه های دسترسی و آزمایش برنامه خود با صفحه خوان ها، می توانید مطمئن شوید که برنامه شما برای همه کاربران، صرف نظر از توانایی های آنها، قابل استفاده است.