piątek, 29 czerwca 2007

Dostępność formularzy MXML

Są dwie rzeczy na które mało przykłada się uwagi: problemy alternatywnej nawigacji po aplikacjach RIA i kwestie drukowania formularzy MXML.

O dostępności we aplikacjach RIA tworzonych w Adobe Flex już pisałem. Głównym pytaniem pozostaje to jak może wyglądać nawigacja po formularzach MXML w przypadku jak użytkownik nie chce bądź nie może korzystać z myszki.

Projektując formularz MXML trzeba uwzględniać to w jakiej kolejności użytkownik ma poruszać się po polach i kontrolkach, następnie warto pomyśleć o skrótach klawiszowych. Aby sprawdzić jak z formularzem MXML radzą sobie narzędzia do czytania zawartości z ekranu, polecam zainstalować programik Inspect32.exe z Microsoft Active Accessibility 2.0 SDK Tools, dzięki temu narzędziu dowiemy się co mogą przeczytać programy czytające z ekranu.
Nawigacja w formularzach MXML z poziomu klawiatury jest omawiania w dokumentacji o interakcji. Warto wiedzieć że spacja jest tym co wyzwala większość akcji klikania myszką.

Drugim ważnym zagadnieniem jest drukowanie. Ja często zauważam, że podgląd wydruku w Internet Explorerze i jak Firefoxa czy w Operze dają całkiem różne widzenie tego jak można wydrukować formularze MXML. Ja testuję to w ten sposób że drukuję je do pliku .XPS a potem porównuję je ze sobą (oszczędzam na wydruku). Doszedłem do wniosku, że warto byłoby dodawać do formularzy MXML przycisk "drukuj". Wiadomo, że Flash Player ma API do sterowania wydrukiem. Pozwoli to uzyskiwać ten sam wygląd wydruku, niezależnie od tego z jakiej przeglądarki internetowej korzystamy. Polecam zapoznanie sie z artykułami z dokumentacji o programowaniu druku z poziomu ActionScriptu 3 przy użyciu klasy flash.printing.PrintJob, a także z wykorzystaniem komponentów do drukowania mx.printing.FlexPrintJob czy z komponentem do drukowania tabelarycznych danych mx.printing.PrintDataGrid.

Czy rzeczywiście warto dodawać przycisk "drukuj" na formularzach MXML? Jak wyglada sprawa drukowania z poziomu aplikacji AJAXA? Wydaje mi się że właśnie fakt posiadania przez Flash Playera programowalnego API sprawia że aplikacje RIA staną sie dostępne dla drukarek pozwalająć na uzyskiwanie o wiele lepszych wydruków formularzy z drukarek, i nie ma wtedy potrzeby generowania PDFów ze serwera ale z samego Flash Playera.

2 komentarze:

maliboo pisze...

A co z uzyskaniem focusa, o ktorym pisal Radek? Jak dla mnie tylko to mogloby byc powaznym "przeciw". Co do drukowania formularzy i innych dupereli podpisuje sie pod tym wszystkiemi rencamy i nogamy;)
Pomijajac wstepna upierdliwosc z drukowaniem - to bardzo fajna opcja.

W robocie ostatnio przygotowywalem taka miniaplikacyjke do drukowania certyfikatow przez uzytkownikow kursu. Wewnetrznie uzywamy jej modyfikacji do wsadowego drukowania wiekszych ilosci (po 60-100 sztuk).

A co do drukowania testowego to polecam PDF995. Darmowa drukarka PDF. Do testowania jak znalazl.

Radek pisze...

Niestety jesli chodzi o wydruk to z PrintJob wcale nie jest tak rozowo we Flexie - chociazby nie pojawianie sie na wydrukach tego co aktualnie nie jest widoczne na ekranie.
Co do focusa - elementy uzyskuja focus w kolejnosci, w ktorej zostaly dodane do rodzica (tutaj formularza - z tym nie bedzie problemu). Tu raczej nic recznie nie trzeba ustalac - analogicznie jest w HTML.