Re: Java Resources?
- From: Jared Wright <wright.jaredm@xxxxxxxxx>
- To: programmingblind@xxxxxxxxxxxxx
- Date: Fri, 28 Dec 2007 05:23:52 -0500
Hi Jay and others, Just running through possible scenarios mentally, I
came across the following curiosity. In your experiences, does the
inaccessibility of swing disallow you to contribute to programs that
utilize it? Of course, I'd never create anything from scratch using
swing as it stands now, considering its current disadvantages. And
certainly there would need to be some cooperation with others who have
familiarity with the project to ensure the program achieves the desired
results at runtime. But if for this upcoming OOP course or sometime
entirely in the future I was given something already coded that utilizes
swing, what would I need to do to generally prepare myself to analyze
and perhaps modify that program? Am I overthinking myself into coming up
with phantom obstacles? I'm just starting with Java, so this is a more
long term issue, but it'll be something to integrate into my learning
roadmap. Thanks in advance for any clarification.
Jared
Macarty, Jay {PBSG} wrote:
Jared,
In its simplest form, the difference between swing and SWT, from an
accessibility perspective, is that SWT uses the underlying components of
the operating system to render the objects on the screen like buttons or
check boxes. Swing, on the other hand, works to achieve platform
independence by painting its own graphics representations of components
rather than lying on the operating system. While this offers some
constancy in behavior and look-and-feel for swing, it poses problems for
screens reading software. Swing is the more common GUI tool for java, at
this time, because the API package is included automatically with the
java development and runtime cores where as SWT is an add-on API.
The most common approach to resolving the issue of a screen reader not
being able to tell what is going on inside a java program is a
technology add-on for java called the Java Access Bridge or JAB. This
technology attempts to expose the java objects to the outside world
where a screen reader can access it; however, the screen reader must be
coded with logic to utilize the access bridge API. At this time, neither
Windows-Eyes nor System Access have releases which include the Java
Access Bridge support.
While java can be an accessibility obstacle, the ironic thing is that it
actually contains one of the best accessibility frameworks around. Its
just a matter of being able to best take advantage of the framework that
is there. This is where the java screen reader I and Sina have been
working on comes into play. Our thoughts were that the best way to take
advantage of the full power of the java accessibility framework is from
within java itself not through a bridge technology. This is the approach
we have individually taken and hope to merge.
More on the status of the java screen reader and the SSIP server later.
-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jared Wright
Sent: Thursday, December 27, 2007 2:20 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: Re: Java Resources?
Hi there Jay, Very good advice, which I have catalogued away and will
certainly try to keep in the forefront of my mind as I dive in. As much
as learning Java, I'm using Java as a medium to try and learn OOP
properly, and what you've told me helps me to validate this particular
approach.
I am familiar with the trouble Window Eyes has with Java GUIs,
although the particulars of it which you've explained do fill in some of
the gaps. Can you point me to where I can learn more about the
differences between swing and SWT? I gather that SWT does not have the
accessibility problems that swing does, or at least not as prominently.
I'm sure there's a reason why swing is the GUI used by most Java
applications I've run across. Is there any specific factor that makes
swing preferable in these cases? I admit I am coming to this very green
on Java, so I don't know a ton about its various nuts and bolts or what
they're used for. I'm sure this will come in time. I do not know yet
what will or will not be used in the class, but for now I'm mostly
getting a head start simply for my own edification. And I'll anxiously
await more news on your Java screen reader as well as the SSIP voice
server. I've seen some traffic about this on the list, but I'll admit
that I didn't quite understand its ramifications just by skimming the
relevant posts. I'll start paying closer atention to its progress now
for certain. Thanks a lot for the helpful feedback, and I'll be sure to
ask more questions as I think of them.
Jared
Macarty, Jay {PBSG} wrote:
Jared,
The primary advice I can offer, as you enter the world of object
oriented programming, is something my college adviser in computer
science told me a long time ago. Spend the time up front to learn the
fundamentals and the rest will come much easier. When I first learned
java, I came from a background of 12+ years working with languages
such
as COBOL, C, and REXX. It took a little while to get down the idea of
thinking of programs in terms of objects. Take the time to learn the
fundamentals of OO, such as inheritance, polymorphism, and
encapsulation
and what they "really" mean in terms of constructing a program or
project. Once you get down the principles, the specific language, such
as java, ruby, C#, etc., becomes a matter of learning the syntax of
how
to apply those principles in a given language. I've seen way too many
so
called "experienced" java programmers with code that still looks like
it
was just converted COBOL code.
Another reason to concentrate on the principles of OO and understand
them well is the emerging emphasis on a system architecture approach
known as service oriented architecture or SOA. SOA takes many of the
OO
programming ideas you will learn, such as encapsulation and loose
coupling, and applies those principles to services (that is autonomous
peaces of business functionality and composites of those basic
services)
instead of just programs. Like object oriented programming, SOA, is a
way of thinking and not just a bunch of applications put together as
web
services. Your grasp of OO programming will serve you well if you get
it
down now in both the areas of programming languages and system
architectures.
As for your being a Window-Eyes user, I have been told by the good
folks
over at GW Micro that java support is coming in a future release;
however, as it stands today, you may have some obstacles when it comes
to working with java's primary GUI interface called swing. As long as
your class is spending time on using java as the back-end of web
applications (such as JSP, java server faces, and servlets) or if you
get into using the GUI interface called SWT, you'll likely be okay.
But
when you start using swing, Window-Eyes 6.1 will not read the screens.
I
don't have a timeframe on when java support will be available in
Window-Eyes (I've asked to be a beta tester). I've recently revived my
own java based screen reader which I hadn't worked on for a couple of
years seriously. I've still got some work to do and am looking forward
to comparing notes with Sina on some similar work; however, my screen
reader works exactly the same under JAWS, Window-Eyes, and System
Access. I hope to release a beta version of the screen reader, along
with version 1.0 of the SSIP voice server, within the next couple of
weeks.
Good luck on your studies and we look forward to hearing of your
progress.
-----Original Message-----
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jared
Wright
Sent: Thursday, December 27, 2007 12:26 AM
To: programmingblind@xxxxxxxxxxxxx
Subject: Java Resources?
Hi Everyone, Next semester I start a course on object oriented
programming with Java as its instructional language. Probably high
time
I get familiar with it anyhow. I've grabbed all of Jamal's Java
documentation from Inthin's page and wanted to check for any tips or
resources you all might have on working with Java, either generally or
as relates the accessibility puzzle. Given the wealth of information
in
Jamal's archive, I'll also welcome any feedback on what you consider
the
most effective learning resources, either in his archive or otherwise.
For context's sake, I am a Window Eyes user and am not yet all that
efficient in Linux, but it is another one of my current persistent
projects, so if there are any resources that are head and shoulders
above anything else and not on Windows, I'm open to giving it a shot.
Definitley more at home on Windows still though. Thanks in advance for
any responses, which I do look forward to reading.
Best,
Jared
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
__________
View the list's information and change your settings at
http://www.freelists.org/list/programmingblind
- Follow-Ups:
- RE: Java Resources?
- From: Macarty, Jay {PBSG}
- References:
- Java Resources?
- From: Jared Wright
- RE: Java Resources?
- From: Macarty, Jay {PBSG}
- Re: Java Resources?
- From: Jared Wright
- RE: Java Resources?
- From: Macarty, Jay {PBSG}
Other related posts:
- » Java Resources?
- » RE: Java Resources?
- » RE: Java Resources?
- » Re: Java Resources?
- » RE: Java Resources?
- » Re: Java Resources?
- » Re: Java Resources?
- » RE: Java Resources?
- » Re: Java Resources?
Jared, In its simplest form, the difference between swing and SWT, from an accessibility perspective, is that SWT uses the underlying components of the operating system to render the objects on the screen like buttons or check boxes. Swing, on the other hand, works to achieve platform independence by painting its own graphics representations of components rather than lying on the operating system. While this offers some constancy in behavior and look-and-feel for swing, it poses problems for screens reading software. Swing is the more common GUI tool for java, at this time, because the API package is included automatically with thejava development and runtime cores where as SWT is an add-on API.
The most common approach to resolving the issue of a screen reader not being able to tell what is going on inside a java program is a technology add-on for java called the Java Access Bridge or JAB. This technology attempts to expose the java objects to the outside world where a screen reader can access it; however, the screen reader must be coded with logic to utilize the access bridge API. At this time, neither Windows-Eyes nor System Access have releases which include the JavaAccess Bridge support.
While java can be an accessibility obstacle, the ironic thing is that it actually contains one of the best accessibility frameworks around. Its just a matter of being able to best take advantage of the framework that is there. This is where the java screen reader I and Sina have been working on comes into play. Our thoughts were that the best way to take advantage of the full power of the java accessibility framework is from within java itself not through a bridge technology. This is the approachwe have individually taken and hope to merge.
More on the status of the java screen reader and the SSIP server later. -----Original Message----- From: programmingblind-bounce@xxxxxxxxxxxxx [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jared Wright Sent: Thursday, December 27, 2007 2:20 PM To: programmingblind@xxxxxxxxxxxxx Subject: Re: Java Resources?Hi there Jay, Very good advice, which I have catalogued away and will certainly try to keep in the forefront of my mind as I dive in. As much as learning Java, I'm using Java as a medium to try and learn OOP properly, and what you've told me helps me to validate this particular approach.
I am familiar with the trouble Window Eyes has with Java GUIs, although the particulars of it which you've explained do fill in some of
the gaps. Can you point me to where I can learn more about the differences between swing and SWT? I gather that SWT does not have the accessibility problems that swing does, or at least not as prominently.
I'm sure there's a reason why swing is the GUI used by most Java applications I've run across. Is there any specific factor that makes swing preferable in these cases? I admit I am coming to this very green on Java, so I don't know a ton about its various nuts and bolts or what they're used for. I'm sure this will come in time. I do not know yet what will or will not be used in the class, but for now I'm mostly getting a head start simply for my own edification. And I'll anxiously await more news on your Java screen reader as well as the SSIP voice server. I've seen some traffic about this on the list, but I'll admit that I didn't quite understand its ramifications just by skimming the relevant posts. I'll start paying closer atention to its progress now for certain. Thanks a lot for the helpful feedback, and I'll be sure to ask more questions as I think of them.
Jared
Macarty, Jay {PBSG} wrote:
Jared, The primary advice I can offer, as you enter the world of object oriented programming, is something my college adviser in computer science told me a long time ago. Spend the time up front to learn the fundamentals and the rest will come much easier. When I first learned java, I came from a background of 12+ years working with languages
such
as COBOL, C, and REXX. It took a little while to get down the idea of thinking of programs in terms of objects. Take the time to learn the fundamentals of OO, such as inheritance, polymorphism, and
encapsulation
and what they "really" mean in terms of constructing a program or project. Once you get down the principles, the specific language, such as java, ruby, C#, etc., becomes a matter of learning the syntax of
how
to apply those principles in a given language. I've seen way too many
so
called "experienced" java programmers with code that still looks like
it
was just converted COBOL code.Another reason to concentrate on the principles of OO and understand them well is the emerging emphasis on a system architecture approach known as service oriented architecture or SOA. SOA takes many of the
OO
programming ideas you will learn, such as encapsulation and loose coupling, and applies those principles to services (that is autonomous peaces of business functionality and composites of those basic
services)
instead of just programs. Like object oriented programming, SOA, is a way of thinking and not just a bunch of applications put together as
web
services. Your grasp of OO programming will serve you well if you get
it
down now in both the areas of programming languages and systemarchitectures.As for your being a Window-Eyes user, I have been told by the good
folks
over at GW Micro that java support is coming in a future release; however, as it stands today, you may have some obstacles when it comes to working with java's primary GUI interface called swing. As long as your class is spending time on using java as the back-end of web applications (such as JSP, java server faces, and servlets) or if you get into using the GUI interface called SWT, you'll likely be okay.
But
when you start using swing, Window-Eyes 6.1 will not read the screens.
I
don't have a timeframe on when java support will be available in Window-Eyes (I've asked to be a beta tester). I've recently revived my own java based screen reader which I hadn't worked on for a couple of years seriously. I've still got some work to do and am looking forward to comparing notes with Sina on some similar work; however, my screen reader works exactly the same under JAWS, Window-Eyes, and System Access. I hope to release a beta version of the screen reader, along with version 1.0 of the SSIP voice server, within the next couple of weeks. Good luck on your studies and we look forward to hearing of yourprogress.-----Original Message----- From: programmingblind-bounce@xxxxxxxxxxxxx [mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Jared
Wright
timeSent: Thursday, December 27, 2007 12:26 AM To: programmingblind@xxxxxxxxxxxxx Subject: Java Resources?Hi Everyone, Next semester I start a course on object oriented programming with Java as its instructional language. Probably high
I get familiar with it anyhow. I've grabbed all of Jamal's Java documentation from Inthin's page and wanted to check for any tips or resources you all might have on working with Java, either generally or
inas relates the accessibility puzzle. Given the wealth of information
Jamal's archive, I'll also welcome any feedback on what you consider
the
most effective learning resources, either in his archive or otherwise.
For context's sake, I am a Window Eyes user and am not yet all that efficient in Linux, but it is another one of my current persistent projects, so if there are any resources that are head and shoulders above anything else and not on Windows, I'm open to giving it a shot. Definitley more at home on Windows still though. Thanks in advance for
any responses, which I do look forward to reading. Best, Jared __________View the list's information and change your settings at http://www.freelists.org/list/programmingblind__________View the list's information and change your settings at http://www.freelists.org/list/programmingblind
__________View the list's information and change your settings at http://www.freelists.org/list/programmingblind
__________View the list's information and change your settings at http://www.freelists.org/list/programmingblind
- RE: Java Resources?
- From: Macarty, Jay {PBSG}
- Java Resources?
- From: Jared Wright
- RE: Java Resources?
- From: Macarty, Jay {PBSG}
- Re: Java Resources?
- From: Jared Wright
- RE: Java Resources?
- From: Macarty, Jay {PBSG}