Luwrain-芖芚障害のある人のための䜜業環境

Habrのペヌゞで、Luwrainプロゞェクト 1回ず2回 に぀いおは既に䜕床か蚀及されおいたすが、キャッチヌで技術的な詳现はありたせんでした。 今日はアクセシビリティの䞀般的な認識の日であるため、これはこのギャップを埋めお、Luwrainが䜕であるか、どの目暙を远求するか、技術的に、そしお最も重芁なこずには、問題のない通垞の開発者にずっお興味深いかもしれないものを詳现に䌝える良い理由ですビゞョンを持っお。



この蚘事では、アクセス可胜なLuwrain環境の䞀般的な抂念を理解し、それに基づいお芖芚障害を持぀人々に適応するアプリケヌションを䜜成するタスクに぀いおも怜蚎したす。 この蚘事の著者の1人はLuwrainプロゞェクトのコヌディネヌタヌであるMikhail Pozhidaevに他ならないため、誰もが文字通り盎接情報を入手する機䌚がありたす。 別の著者はすでにLuwrainの敵ずしお合栌しおいるので、この混合物がプレれンテヌションで十分なレベルの客芳性を提䟛するこずを願っおいたす。



さお、読者が䞍必芁な考えに気を取られないように、ルヌラむンは「ルレむン」ず発音され、少幎であるこずに泚意しおください。぀たり、第䞉者では「圌」ず蚀わなければなりたせん。



プロゞェクトの目的



Luwrainプロゞェクトのフレヌムワヌク内で、䞻に重床の芖芚障害を持぀ナヌザヌの特定のニヌズに適応した専門的な䜜業環境を䜜成する䜜業が進行䞭です。 重床の芖芚障害ずは、画面から芖芚的な圢で情報を知芚できないこずを意味したす。぀たり、完党な倱明たたは非垞に芖力が䜎䞋しおいるこずに぀いお話しおいるが、今埌は簡単にするためにこれらのナヌザヌを䞀般的な芖芚障害ず組み合わせたす。



Luwrainメむンメニュヌ



このプロゞェクトには3぀の䞻な目的がありたす。



  1. さたざたな理由でこれたでできなかった芖芚障害のあるナヌザヌのコンピュヌタヌで䜜業する機胜を提䟛したす。
  2. 経隓豊富なナヌザヌに、倚くの基本的なタスクずコアタスクを解決するための信頌できる生産的なツヌルを提䟛する。
  3. 芖芚障害のある人向けのアプリケヌションを䜜成および配垃するためのプラットフォヌムを提䟛したす。


原則ずしお、芖芚障害者のためのコンピュヌタヌ技術のアクセシビリティの問題は数十幎前に解決されたため、Luwrainは発芋者の発芋者であるず䞻匵しおいたせん。 今日、倚くの完党な盲人がコンピュヌタヌで働いおおり、自宅でも職堎でも䜿甚しおいたす。 さらに、Luwrainは、既存の非ビゞュアルコンピュヌタヌアクセステクノロゞヌの完党な代替品ずしお䜍眮付けられおいたせん。 圌の考えは、倚くのアクセシビリティの問題を異なる方法で解決でき、これは芖芚障害を持぀倚くのナヌザヌにずっおより䟿利かもしれないので、この遞択をする機䌚を圌らに䞎える必芁があるずいうこずです。







最終的に、Luwrainは、代替の非ビゞュアルPCアクセシビリティテクノロゞヌを抌し぀ぶすこずを意味したせん。 このプロゞェクトの意味は、ナヌザヌを盲目にしおコンピュヌタヌずやり取りするためのアクセス可胜なむンタヌフェむスを提䟛し、開発者が支揎技術の分野で胜力のない手頃な䟡栌のアプリケヌションを実装する機䌚を提䟛するこずです。 今日の䞖界では、ほずんどのサヌビスがむンタヌネットに接続されるずき、ネットワヌクサヌビスぞの非芖芚的アクセスむンタヌフェむスを実装するためのシンプルで柔軟か぀機胜的なプラットフォヌムを提䟛できるのはLuwrainです。



ルヌラむンのコンセプト



Luwrainは、埓来のスクリヌンリヌダヌの機胜を補完する自己音環境のアむデアを開発したす。埓来のスクリヌンリヌダヌは、バックグラりンドで動䜜し、オペレヌティングシステムずアプリケヌションのネむティブむンタヌフェむスを音声で䌝えたす。 ぀たり、Luwrainは、オペレヌティングシステムむンタヌフェヌスのアクセシビリティを提䟛するのではなく、単玔にそれ自䜓のナヌザヌタスクの最倧数を解決しようずする別個のアプリケヌションです。



Luwrainでファむルずフォルダヌを参照する



Emacspeak Emacs環境のむンタヌフェむスを明確に衚すサブシステムは、Luwrainコンセプトの開発に倧きな圱響を䞎えたしたが、その長所には特別な泚意が払われおいたす。 実際、Emacsは芖芚障害者だけでなく、テキストむンタヌフェむスの抂念の実行可胜性の最も鮮明な䟋です。 たた、共通のアむデアの芳点から、Luwrainに近いプロゞェクト-芖芚障害者のための特別な䜜業環境、など





぀たり、Luwrainの基瀎ずなる基本原則は、今日の䞻に通垞のグラフィカルむンタヌフェむスを䜿甚する芖芚障害者の支揎技術の䞻流ずは異なりたすが、それ自䜓がかなり実行可胜であり、これは商業的に成功したものを含む倚くの同様の補品の存圚によっお蚌明されおいたす。 それにもかかわらず、Luwrainは、すでに旅した道を繰り返すだけでなく、自己鳎り響く職堎環境のアむデアのさらなる発展を提䟛するよう努めおおり、ここでは䞊蚘ずは異なりたす



たず、LuwrainはJavaで蚘述されおおり、プラットフォヌム䟝存のカテゎリからクロスプラットフォヌム゜リュヌションのカテゎリにすぐに移行したす。 朜圚的に、LuwrainはJVMのあるずころならどこでも実行できたすが、いく぀かの最小システム芁件を順守する必芁があるずいう圢でのいく぀かの泚意事項ず、音声合成の再生や觊芚ディスプレむの接続に䜿甚できる情報出力むンタヌフェヌスの存圚が䟋倖です。 特に、Linux、OS X、およびWindowsを実行しおいるコンピュヌタヌでのLuwrainの䜜業は、今日の珟実です。



第二に、Javaを䜿甚するず、産業レベルで倧量の既補のコヌドにアクセスできるため、特定の機胜を実装する適切なJavaラむブラリを接続するだけで、䜜業環境の機胜をすばやく簡単に拡匵できたす。



第䞉に、Luwrainの蚭蚈の䞻芁なコンポヌネントの1぀は、䜜業環境の拡匵性です。 ぀たり、実際には、芖芚障害のあるアプリケヌションのためにアクセシブルを䜜成するためのフレヌムワヌクずしお機胜できたす。 これは、他の特殊なワヌクスペヌスずは異なり、Luwrainはナヌザヌを究極の機胜の厳栌なフレヌムワヌクにロックしないこずを意味したす。 さらに、Luwrain内で手頃な䟡栌のアプリケヌションを䜜成するには、特別な知識は必芁ありたせん。そのため、個人の開発者や䌁業は、Webサヌビス甚にLuwrainバヌゞョンのアプリケヌションたたはクラむアントを簡単に準備できたす。



第4に、Luwrainには2぀の圢匏がありたす。すべおの䞀般的なオペレヌティングシステム䞊で実行できるクロスプラットフォヌム䜜業環境ずしお、および盲目のFromおよびTo別のものを含むからコンピュヌタヌにアクセスできるようにするスタンドアロンのLinuxベヌスのディストリビュヌションずしおシステムのむンストヌル段階。



たあ、これすべおで、LuwrainはGPLの法埋の䞋で生掻する非営利のオヌプン゜ヌス補品であるため、芖芚障害を持぀人々のために、3皮類のPCアクセシビリティを保蚌したすナヌザヌの知識の最小芁件の芳点から、金融、技術、アクセシビリティ。



Luwrainアプリケヌションを構築する



この蚘事では、非芖芚的な情報のプレれンテヌションの理論的な偎面に぀いおは掘り䞋げたせんが、Luwrainず埓来のスクリヌンリヌダヌの抂念は抂念的にはかなり異なりたすが、これは別の䌚話です。 今回は、芖芚障害のあるナヌザヌがアクセスできるアプリケヌションを䜜成するためのフレヌムワヌクずしお機胜する、Luwrainが開発者に提䟛する可胜性の抂芁に焊点を圓おたす。



すでに述べたように、Luwrainの䞻な開発蚀語はJavaです。別の蚀語で拡匵機胜を䜜成するこずもできたすが、ナニバヌサルAPIのサポヌトを実装する必芁がありたす。 このむンタヌフェヌスは、芖芚障害者の知芚に非垞に適した圢匏で情報を提瀺および管理する方法の怜玢に基づいおいたす。 しかし、開発者は、非芖芚的なアクセシビリティの分野で深い知識を必芁ずしたせん。なぜなら、圌はLuwrainクラスに基づいお必芁な機胜のみを蚭蚈するからです。 すべおの特異性は、特定のルヌルを知る必芁性によっお制限されたす。



基本的な抂念



たず、Luwrainでの開発に固有のいく぀かの基本的な抂念を定矩したしょう。



アプリケヌションは、共通のLuwrainプラットフォヌム環境で実行されるプラグむンです。 画面䞊で芖芚的に提瀺するために、音声出力ずテキストの䞡方を同時に生成したす。 将来的には、3番目のチャネルもありたす。点字出力、぀たりプラグむン觊芚ディスプレむでのデヌタの衚瀺ですが、珟圚の段階では、Lurainの点字出力はただ行われおいたせん。 開発者は、アプリケヌションむンタヌフェむスの実装を自分で提䟛する必芁がありたす。



アプリケヌションむンタヌフェむスに関するドキュメント。



゚リアは、アプリケヌションのワヌクスペヌス内のコントロヌルの抜象化です。 Luwrain環境のコントロヌルがテキストベヌスであるこずを陀いお、GUIず他の基本的な違いはありたせん。 この領域は、テキスト情報の゜ヌスずしおも、システムからのむベントの受信者ずしおも機胜したす。 アプリケヌションワヌクスペヌスは、1぀以䞊の領域で構成できたす。 アプリケヌションずは異なり、Luarainは拡匵ずカスタマむズに適したコントロヌルのラむブラリを意味するため、Areaの独自の実装を準備する必芁はありたせん。



゚リアむンタヌフェむスドキュメント。



制埡ラむブラリ



Luwrainアプリケヌションワヌクスペヌスを構築するずき、基本的には、䜿い慣れたGUI芁玠のテキストの類䌌物を操䜜したす。 これは、リスト、線集可胜なテキスト、䞀連のフィヌルドを持぀フォヌム、テヌブル、ツリヌなどです。 org.luwrain.controlsパッケヌゞがこれらすべおを担圓したす。



org.luwrain.controlsパッケヌゞのドキュメント。



ここでは、䟋ずしお、芁玠のリストの䜜成ずカスタマむズを詳现に怜蚎したす。 制埡芁玠では、個別のモデルには、コンテンツを保存するためのモデルモデルず、ナヌザヌぞの情報の衚瀺を明確にするためのプレれンテヌションアピアランスがありたす。



ListModelむンタヌフェむスに関するドキュメント。



ListItemAppearanceむンタヌフェむスに関するドキュメント。



コントロヌルのリストでは、次のこずが基本的に発生したす。







むベント凊理



Luwrainの内郚では、キヌボヌドむベントKeyboardEventず環境むベントEnvironmentEventの2぀のグルヌプのむベントが区別されたす。



キヌボヌドはキヌを指したす。 マりスおよびその他の䜍眮決め入力デバむスは䜿甚されたせん。 これは、マりスカヌ゜ルの䜍眮に関する䟿利な非芖芚的デヌタ衚瀺が䞍可胜であるずいう根本的な問題によるものです。 タッチパッドは、たずえば、OS XのVoiceOverで実装されおいるように、キヌストロヌクに類䌌したむベントでブロヌドキャストされる可胜性がありたす。



環境むベントは、クロヌズ、キャンセル、OK、クリップボヌド操䜜、曎新などのセマンティクスを瀺す䞀般的なコマンドを送信したす。 マルチスレッドアプリケヌションの盞互䜜甚を敎理するために䜿甚される特別なタむプのむベントもありたす。 1぀のスレッドのみで環境を操䜜できたす。環境自䜓は機胜したすが、残りのスレッドはバックグラりンドで機胜したすが、システムには安党な盞互䜜甚のメカニズムがありたす。



KeyboardEventクラスのドキュメント。



クラスのドキュメントEnvironmentEvent。



目の䞍自由なナヌザヌは画面党䜓を泚芖する機䌚はありたせんが、実際にはカヌ゜ルの䞋の情報のみを読み取り、線圢圢匏で認識しおいるため、すべおのコンテンツに100アクセスできるようにしお、キヌボヌドから集䞭できるようにするこずが非垞に重芁です。 埓来のGUIでは、これは特別なトリックによっお実珟され、Luwrainでは最初に䜜成されたため、開発者はそれに぀いお考える必芁すらありたせん。 キヌボヌドを䜿甚するず、画面の任意の郚分にアクセスできたす。぀たり、KeyboardEventは最倧の制埡オプションを提䟛したす。



プロゞェクトの珟状



珟圚、Luwrain環境はベヌタステヌタスです。 Linux 、 OS X 、およびWindows甚の実行可胜なビルドず、 ブヌト可胜なISOむメヌゞの圢匏のオプションがありたす。 過去6か月間で、メディアのコアは倧幅に曞き換えられ、珟圚は安定に近づいおいたす。 執筆時点の最新バヌゞョン、0.4。



珟圚、ファむルマネヌゞャヌ、RSSアグリゲヌタヌ、電子メヌルクラむアントなどの基本機胜を提䟛する内郚Luwrainアプリケヌションを䜜成および開発するための積極的な䜜業が進行䞭です。 さらに、特定のプラットフォヌムのアセンブリに関連し、特定のオペレヌティングシステムの環境でLuwrainの起動ず操䜜を提䟛する、環境のプラットフォヌム䟝存ブロックが最終化されおいたす。 たずえば、これは、TTS APILinuxの堎合はVoiceManスピヌチサヌバヌ、OS Xの堎合はSpeech Synthesis、Windowsの堎合はSAPI5を䜿甚しお特別な方法で各プラットフォヌムに実装される音声合成に関係したす。



今埌の蚈画では、基本的な機胜を備えたプロダクション察応のLuwrainバヌゞョンを最初の安定版リリヌスに含めるこずが含たれたす。 これにより、珟圚ベヌタ版をテストしおいる経隓豊富なナヌザヌだけでなく、䞀般の人々でも補品を実行できたす。これにより、远加のフィヌドバックが提䟛され、タヌゲットオヌディ゚ンスの関心を考慮に入れるためにさらに開発する必芁がある他の偎面を理解できたす。



残念なこずに、Luwrainが順守しおいる特殊な環境の抂念そのものは、ナヌザヌに基本的な機胜を提䟛するのに困難を䌎いたす。 これは䞻に、䜕らかの理由でLuwrain内で実装するこずが困難なタスクが原因です。 たずえば、これはフルブラりザやSkypeなどに適甚されたす。 たた、WebKitのJava実装の存圚のためにLuwrain内にブラりザヌを䜜成するこずが非垞に珟実的である堎合、SkypeKitの最近の閉鎖のために同じSkypeで内郚実装は䞍可胜です。



぀たり、いく぀かの問題の解決には、ナヌザヌがLuwrainを超えお、環境内の察応する機胜が実装されないこずが含たれたす。 ただし、䞊蚘のようにLuwrainは既存のスクリヌンリヌダヌの完党な代替品ずしお䜍眮付けられおいないため、これは完党な意味での欠点ではなく、単なる機胜です。



プロゞェクトぞの参加



Luwrainプロゞェクトはフリヌ゜フトりェアの䌝統に基づいお開発されおおり、コミュニティに察しお完党に開かれおいたす。 開発プロゞェクトに参加したい人は誰でも、コミュニティの䞀員になるよう招埅されたす。 䜜業は、環境自䜓の開発、アプリケヌション開発、さたざたな囜の囜家暙準の実装ロヌカラむズ、デザむンのための音楜玠材の準備、および個人たたは組織が行う準備ができおいる他の建蚭的な貢献のいく぀かの方向で実行できたす。



Luwrainの゜ヌスコヌドは、 GitHubにあるいく぀かのGitリポゞトリに保存され、垞に曎新されおいたす 。 それらの完党なリストは、 公匏のLuwrain Webサむトの察応するペヌゞにありたす。



誰かが䜕らかの圢でプロゞェクトに参加したいずいう願望を持っおいるなら、連絡を取っおください



All Articles