Кіріспе
Қолданбалық бағдарламалау интерфейсі Microsoft Active Accessibility (MSAA) – пайдаланушы интерфейсіне қолжетімділік қамтамасыз ететін қолданбалық бағдарламалау интерфейсі (API). MSAA 1997 жылы Microsoft Windows 95 жүйесіне қосымша платформа ретінде енгізілді. MSAA көмекші технологиялар (AT) өнімдерінің стандартты және жекелендірілген пайдаланушы интерфейсі (UI) элементтерімен өзара әрекеттесуіне, сондай-ақ қосымшаның UI элементтеріне қол жеткізуге, оларды анықтауға және басқаруға көмектесу үшін жасалған. AT өнімдері физикалық немесе когнитивтік қиындықтары, кемшіліктері немесе мүгедектері бар адамдарға жақсы қолжетімділік беру үшін MSAA қолдауы бар қосымшалармен жұмыс істейді. AT өнімдерінің мысалдары: көру қабілеті шектеулі пайдаланушыларға арналған экранды оқу құралдары, физикалық мүмкіндіктері шектеулі пайдаланушыларға арналған экрандағы пернетақталар немесе есту қабілеті шектеулі пайдаланушыларға арналған дыбыстық хабар берушілер. MSAA автоматтандырылған тестілеу құралдары мен компьютерлік оқу бағдарламалары үшін де пайдаланылуы мүмкін. MSAA-ның қазіргі және соңғы нұсқасы Microsoft UI Automation Community Promise Specification-ның бір бөлігінде келтірілген.
Microsoft Active Accessibility (MSAA) is an application programming interface (API) for user interface accessibility. MSAA was introduced as a platform add on to Microsoft Windows 95 in 1997. MSAA is designed to help Assistive Technology (AT) products interact with standard and custom user interface (UI) elements of an application (or the operating system), as well as to access, identify, and manipulate an application's UI elements. AT products work with MSAA enabled applications in order to provide better access for individuals who have physical or cognitive difficulties, impairments, or disabilities. Some examples of AT products are screen readers for users with limited sight, on screen keyboards for users with limited physical access, or narrators for users with limited hearing. MSAA can also be used for automated testing tools, and computer based training applications. The current and latest specification of MSAA is found in part of Microsoft UI Automation Community Promise Specification.
Тарих
Активті қолжетімділік бастапқыда OLE қолжетімділігі деп аталды және бұл тарихы оның екілік компоненттерінің атауларында көрініс тапты, мысалы oleacc.dll және oleacc.h атты header файлдары, онда анықтамалар мен жарияланымдар бар. 1996 жылдың наурызында Microsoft компаниясының ActiveX брендін кеңейту аясында OLE Accessibility, ActiveX Accessibility (кейде AXA деп те аталады) деп өзгертілді және 1996 жылдың наурызында Сан-Францискода өткен Microsoft Professional Developers конференциясында таныстырылды. Кейіннен ActiveX бренді интернетке қатысты технологиялар үшін сақталды, ал ActiveX Accessibility Active Accessibility болып өзгерді және көбінесе MSAA деп қысқартылды. MSAA алғаш рет 1997 жылдың сәуірінде Microsoft Active Accessibility Software Developers Kit (SDK) нұсқасы 1.0-дың бір бөлігі ретінде қолжетімді болды. SDK жинағы құжаттаманы, бағдарламалау кітапханаларын, үлгілік бастапқы кодты және қолжетімді технологияларды дамытушылар өз өнімдерімен бірге тарата алатын қайта тарату жиынтығын (RDK) қамтыды. RDK-ға Microsoft Windows 95 операциялық жүйесінің жаңартылған компоненттері кірді. Windows 98 және Windows NT 4.0 Service Pack 4 нұсқаларынан бастап MSAA Windows платформасының барлық нұсқаларына енгізілді және уақыт өте келе жаңарулар мен түзетулер алды. Windows жүйесіндегі көмекші технологияларға бағдарламалық қолжетімділік дәстүрлі түрде MSAA арқылы қамтамасыз етілді. Дегенмен, қазіргі заманағы қосымшалар Microsoft UI Automation (UIA) қолданады, ол Windows Vista және .NET Framework 3.0 нұсқаларында енгізілді.
Мотивация және мақсаттар
MSAA-ны әзірлеудің негізгі себебі – операциялық жүйе немесе қосымшалар мен көмекші технологиялар арасында қолжетімді және үздіксіз байланыс құралын қамтамасыз ету болды. MSAA-ның бағдарламалық мақсаты – Windows басқару элементтеріне атау, экрандағы орны, басқару түрі сияқты негізгі ақпаратты, сондай-ақ көріну, қосулы/өшірулі күйі немесе таңдалғандығы сияқты мән-жайларды ашуға мүмкіндік беру.
Техникалық шолу
MSAA компоненттік объектілер моделіне (COM) негізделген. COM қосымшалар мен операциялық жүйелердің байланысуы үшін механизмді анықтайды. 1-суретте MSAA жоғары деңгейлі архитектурасы көрсетілген. Қолданбалар (мысалы, сөз өңдегіш) MSAA-да Серверлер деп аталады, себебі олар өздерінің пайдаланушы интерфейстері (UI) туралы ақпаратты ұсынады немесе қызмет көрсетеді. Қолжетімділік құралдары (мысалы, экранды оқу құралдары) MSAA-да Клиенттер деп аталады, өйткені олар қолданбадан UI ақпаратын тұтынады және онымен өзара әрекеттеседі. MSAA құрылымының жүйелік компоненті Oleacc.dll, қолжетімділік құралдары (клиенттер) мен қолданбалар (серверлер) арасындағы байланысқа көмектеседі. Код шекарасы, пайдаланушы интерфейсінің қолжетімділік ақпаратын ұсынатын қолданбалар мен пайдаланушылар үшін UI-мен өзара әрекеттесетін қолжетімділік құралдары арасындағы бағдарламалық шекараны көрсетеді. Шекара сондай-ақ MSAA клиенттерінің жеке процестері болған жағдайда процесс шекарасы да болуы мүмкін. UI қолжетімді объектілердің иерархиясы ретінде ұсынылады; өзгерістер мен әрекеттер WinEvents ретінде ұсынылады.
Қолжетімді нысандар
Қолжетімді нысан – MSAA-ның негізгі интерфейсі болып табылады және ол COM интерфейсімен және бүтін санмен ұсынылады. Ол қолданбаларға пайдаланушы интерфейсінің құрылымын көрсететін ағаш тәрізді құрылымды ашуға мүмкіндік береді. Осы ағаштың әрбір элементі сәйкес келетін пайдаланушы интерфейсі элементін басқаруға мүмкіндік беретін қасиеттер мен әдістер жиынтығын ұсынады. MSAA клиенттері стандартты API арқылы бағдарламалық түрде пайдаланушы интерфейсі туралы ақпаратқа қол жеткізе алады.
Рөлдер, есімдер, құндылықтар, күйлер
MSAA бағдарлама элементтері туралы ақпаратты көмекші технология объектісіне (AT) шағын бөліктер түрінде жіберу арқылы хабарлайды. AT пайдаланушыларға қолданбалармен өзара әрекеттесуге көмектесетін төрт маңызды ақпарат – элементтің рөлі, атауы, мәні және күйі:
Рөлі: Басқару элементінің қандай типтегі объект екенін, мысалы, батырма немесе кесте, пайдаланушыларға AT арқылы жеткізеді. Бұл үшін әдіс: Атауы: Элементке белгі қояды, мысалы, пайдаланушыларды келесі бетке жылжытатын батырмадағы «Келесі» немесе өңдеуге болатын мәтіндік өріс үшін «Аты». Бұл үшін әдіс: Мәні: Белгіленген объектінің мәнін береді, мысалы, сырғытпа жолақтағы мән немесе өңделетін мәтіндік өрістегі ақпарат. Барлық объектілердің мәні бола бермейді. Бұл үшін әдіс: Күйі: Басқару элементінің ағымдағы жағдайын анықтайды, мысалы, тік қойындыны таңдау. Күйі басқару элементін таңдауға, фокусқа алуға және/немесе басқа өзгертілетін мүмкіндіктерге болатынын көрсетеді. Бұл үшін Microsoft басқару элементтері мен олардың функцияларының толық тізімін ұсынады.
Microsoft provides a complete list of controls and their functions.
Рөл
Роль туралы ақпаратты әзірлеуші қандай UI элементімен жұмыс істегісі келеді, соған байланысты анықталады. Мысалы, егер әзірлеуші батырманы жасап жатса, ол осы батырманың ролін анықтайды. Келесі кестеде MSAA ролінің мысалдары мен олардың сипаттамалары келтірілген. RoleDescription ROLE SYSTEM APPLICATION Объекті қолданбаның негізгі терезесін көрсетеді. ROLE SYSTEM BUTTONMENU Объекті мәзірді ашатын батырманы көрсетеді. ROLE SYSTEM CARET Объекті жүйелік курсорды көрсетеді. ROLE SYSTEM DIALOG Объекті диалогтік терезені немесе хабарлама терезесін көрсетеді. ROLE SYSTEM DOCUMENT Объекті құжат терезесін көрсетеді. Құжат терезесі әрқашан қолданба терезесінің ішінде орналасады. Бұл роль тек MDI терезелері үшін қолданылады және MDI тақырып жолағын қамтитын объектіге сілтеме жасайды. ROLE SYSTEM GRAPHIC Объекті суретті көрсетеді. ROLE SYSTEM LIST Объекті тізімдік қорапты көрсетеді, ол пайдаланушыға бір немесе бірнеше элементті таңдауға мүмкіндік береді. ROLE SYSTEM MENUBAR Объекті мәзір жолағын (терезе тақырып жолағының астында орналасқан) көрсетеді, одан пайдаланушы мәзірлерді таңдайды. ROLE SYSTEM PROGRESSBAR Объекті прогресс жолағын көрсетеді, ол операцияның аяқталуын динамикалық түрде көрсетеді. Бұл элемент пайдаланушыдан ешқандай кіріс қабылдамайды. ROLE SYSTEM PUSHBUTTON Объекті батырманы көрсетеді. ROLE SYSTEM RADIOBUTTON Объекті опция батырмасын көрсетеді, оны радио батырма деп те атайды. Бұл өзара байланысты опциялардың бірі. Бір ата-анаға ие барлық объектілер осы атрибутқа ие болса, бір-бірімен өзара байланысты топтың бөлігі деп есептеледі. Оларды жеке топтарға бөлу үшін ROLE SYSTEM GROUPING объектілерін пайдаланыңыз. ROLE SYSTEM SCROLLBAR Объекті тік немесе көлденең прокрутка жолағын көрсетеді, ол клиенттік аймақтың бөлігі болып табылады немесе басқару элементінде қолданылады. ROLE SYSTEM TITLEBAR Объекті терезенің тақырып жолағын көрсетеді. ROLE SYSTEM TOOLBAR Объекті құралдар панелін көрсетеді, ол жиі қолданылатын мүмкіндіктерге оңай қол жеткізуді қамтамасыз ететін басқару элементтерінің жиынтығы болып табылады. ROLE SYSTEM WINDOW Объекті терезе шеңберін көрсетеді, ол тақырып жолағы, клиенттік аймақ және терезенің ішінде орналасқан басқа да элементтер сияқты кіші элементтерді қамтиды. MSAA-да бұл терезе объектісі Windows-тағы HWND объектісімен бірдей болып келеді.
Атауы
Қолданбадағы элементтердің атауларын әзірлеуші кодта анықтайды. Көптеген нысандар, мысалы, белгішелер, мәзірлер, тіктеп таңдау тізімдері, комбо-блоктар және басқа да басқару элементтері пайдаланушыларға көрсетіледі. Басқару элементінде (мысалы, батырмада) пайдаланушыға көрсетілетін кез келген жазу, нысанның "Name" қасиетінің бастапқы мәні болып табылады. Нысанның атауы пайдаланушыға түсінікті болуы және басқару элементін дұрыс сипаттауы тиіс. "Name" қасиетінде басқару элементінің рөлі немесе түрі туралы ақпарат, мысалы, "батырма" немесе "тізім" болмауы керек, әйтпесе ол рөл қасиетінің мәтінімен (MSAA API-ның GetRoleText функциясынан алынған) қақтығыс тудырады.
Құны
Құн - бағдарламашының нысандардан ақпаратты жол түрінде қайтару қажет болғанда қолданылатын нәрсе. Пайыздық көрсеткіштер, бүтін сандар, мәтін немесе визуальды ақпарат сияқты мәліметтерді қамтитын нысандар үшін құн қайтарылуы мүмкін. Мысалы, прокрутка жолағы мен іздеу жолағының қолжетімді нысандарынан алынған қасиет мәндері жол түрінде пайыздық көрсеткіштерді білдіре алады. Барлық нысандарда құн болмауы мүмкін.
Мемлекет
Мемлекеттік мүлік – бұл объектінің белгілі бір сәттегі жай-күйін сипаттайды. Microsoft Active Accessibility, oleacc.h файлында анықталған, объектінің жай-күйін анықтау үшін біріктірілетін жай-күй тұрақтыларын ұсынады. Егер алдын ала анықталған жай-күй мәндері қайтарылса, клиенттер осы жай-күйді сипаттайтын жергілікті тілге аударылған мәтінді алу үшін GetStateText функциясын пайдаланады. Барлық нысандар жай-күй мүлігін қолдайды.
Қиындықтар мен шектеулер
Microsoft Windows 95 шығарылымы кезінде және одан кейін Active Accessibility объектілік моделін жасады. Модель рөлдерге негізделген, әрбір рөл пайдаланушы интерфейсі элементінің түрін көрсетеді. Бұл рөлдер сол кезде кеңінен қолданылған пайдаланушы интерфейсі элементтерімен шектелген. Мысалы, көмекші технологияларға бірнеше UI элементін біріктіретін бөлінген түймелерді өңдеуге көмектесетін мәтіндік объектілік модель жоқ. MSAA стильделген мәтінді, мысалы, белгіленген мәтінді немесе бай мәтіндік құжаттарды көрсетуге тырыспайды. MSAA әлі де Value қасиетіне ие, бірақ оның мәніне тек қарапайым, стильделмеген мәтінді ғана орналастыруға болады. Сол кезде пішімделген мәтіннің атрибуттарын беру үшін Microsoft Text Object Model (MS TOM) тиімдірек деп есептелді. Алайда, MS TOM-ның күрделілігі және Microsoft-тан тыс бастапқыдағы шектеулі қолданылуы бай мәтінге қол жеткізуді қиындатты. Тағы бір шектеу – объектілік модельге қатынау. MSAA интерфейсті Windows терезе басқарушысына ұқсас, қолжетімді объектілердің иерархиясы ретінде көрсетеді. Клиенттер IAccessible::accNavigate әдісін пайдаланып, бір қолжетімді объектіден екіншісіне өтеді. Бірақ серверлер accNavigate әдісін болжамсыз жолдармен іске асырды және көбінесе оны мүлдем іске қоспады. Дегенмен, клиенттер кез келген MSAA сервері үшін барлық тәсілдермен жұмыс істей білуі керек. Бұл түсініксіздік клиентті іске асырушылар үшін қосымша жұмыс енгізеді және күрделілік серверлік іске асыруларға байланысты проблемаларға әкелуі мүмкін. IAccessible – COM негізіндегі екілік интерфейс болғандықтан, ол өзгертілмейді және жаңа интерфейс жасамай өзгертілмейді. Соның салдарынан, жаңа рөлдерді, мінез-құлықты немесе қасиеттерді қолданыстағы IAccessible негізіндегі объектілік модель арқылы көрсету мүмкін емес. Негізгі пайдаланушы интерфейсі элементтері туралы ақпараттың ортақ жиынтығы болуы тиіс деп есептелгенімен, оны жаңа өзара әрекеттесу әдістері туралы ақпаратты қамту үшін кеңейту қиын болып шықты.
Қолжетімділік
MSAA бастапқыда Windows 95-ке қосымша ретінде қолжетімді болды. Ол барлық келесі Windows нұсқаларында енгізілген.
Қатынасты технология
Microsoft UI Automation (UIA): MSAA-ның ізбасары – Пайдаланушы интерфейсін автоматтандыру (UIA) болды. Дегенмен, MSAA негізіндегі қолданбалар әлі де бар болғандықтан, UI Automation және MSAA қолданбалары арасында байланыс орнату үшін көпірлер пайдаланылады. Осылайша, екі API арасында ақпарат алмасу мүмкін болсын деп, MSAA-дан UI Automation проксисі және UI Automation-нан MSAA көпірі әзірленді. Біріншісі – MSAA ақпаратын қабылдап, оны UI Automation клиенттік API арқылы қолжетімді ететін компонент. Екіншісі – UI Automation-ды қолданатын қолданбаларға MSAA қолжетімділік мүмкіндіктерін пайдалануға мүмкіндік береді. Желілік Rich Internet Applications (WAI ARIA): ARIA атрибуттары мен MSAA қасиеттері арасында жалпы сәйкестік бар. IAccessible2: MSAA, IAccessible2-нің бастауын қалайды. IAccessible2, MSAA-да жасалған жұмысты пайдаланады және қосымша функционалдықтарды қосады. Windows Automation API: Windows 7-ден бастап Microsoft өзінің қолжетімділік технологияларын Windows Automation API деп аталатын біртұтас жүйеге біріктіруде. MSAA осы жүйенің бір бөлігі болады.
Microsoft Active Accessibility-ті іске асыру
Активті қолжетімділік Windows 95-тен бастап Windows-тың барлық нұсқаларында бағдарламашылар үшін қолжетімді. MSAA алғашқы пайда болуынан бері көптеген бизнес және тұтынушылық бағдарламалардың, оның ішінде Microsoft Internet Explorer, Mozilla Firefox, Microsoft Office және т.б. пайдаланушы интерфейсіне бағдарламалық түрде қол жеткізуді қамтамасыз ету үшін қолданылып келеді. Экранды оқу құралдары, экранды үлкейту құралдары, толықтырушы және баламалы коммуникация (AAC) құрылғылары сияқты қолжетімділікке көмектесетін құралдармен қатар, бұл технология QuickTest Pro, Functional Tester және SilkTest сияқты тестті автоматтандыру бағдарламалық жасақтамасында да қолданылады. Бағдарламалар мен арнайы технологиялық өнімдердегі MSAA-ның толыққанды тізімін Microsoft Accessibility сайттарында немесе арнайы технологиялық ақпарат веб-сайтында табуға болады.