Thread Subject: Concerns about our current definition of a "platform"
Note
This archival content is maintained by WebAIM and NCDAE on behalf of TEITAC and the U.S. Access Board . Additional details on the updates to section 508 and section 255 can be found at the Access Board web site.
From: Peter Korn
Date: Mon, Aug 20 2007 6:30 PM
- Return to this mailing list's archives
- View all messages in this thread
- Next message in thread: Gregg Vanderheiden: "Re: Concerns about our current definition of a"platform""
- Previous message in thread: None
- Messages sorted by: Author | Thread | Date
From a meeting or two ago, I took the action to try to update our
current draft definition of a "platform". You can find that definition
at
http://teitac.org/wiki/Web_and_Software:_Definitions#In_process_definitions.
Here is the text:
--------------------------
*Platform software*:
collection of software components that runs on an underlying software or
hardware layer, such that the platform creates a virtual environment in
which to run applications in a manner which isolates the applications
from the underlying layer.
* Note 1: If there is a direct route from the application to the
underlying layer then the software components in the middle are
not considered to be a "platform". For example, a program which
hosts plug-in's is not a platform if the plug-in can directly
access the underlying layer.
* Note 2: An application offering a compute service, such as a 3d
rendering engine where a requesting application can directly
access the underlying layer would also not be considered a
"platform".
* Note 3: A particular software component may play the role of a
platform in some situations and not in others. Platforms can
include such things as Internet browsers, operating systems,
plug-ins to internet browsers or other software applications, and
under some situations, byte-code interpreted virtual environments,
and other "programming within another programming" environments.
* *TBD:* Notes about bootloader programs and closed systems?
-------------------------
My concern is with the phrase "in a manner which isolates the
application from the underlying layer", and especially Note 1 "If there
is a direct route from the application to the underlying layer...".
I believe the Java platform should meet our definition of a platform.
As per note 3, the Java runtime interprets Java byte-code, and runs the
code inside a virtual, run-time environment. However, it is possible to
introduce native code which can be called directly from Java (via the
"Java Native Interface" mechanism or JNI) - thus creating "a direct
route from the application to the underlying layer". Should the
possibility of the creation of such a direct route disqualify Java as a
platform (even if it isn't used; or it is used for something completely
unrelated to presenting an accessible user interface: e.g. fast file
manipulation or database access)? Likewise, one of the things we've
done in the Swing user interface library for Java is gather and expose
platform-specific settings for things like the desktop font and color
and menu height - all of the things necessary to make visual user
interface that complies with the desktop theme setting. In a sense
then, with this information, we are expressly allowing Java applications
to behave as if they are visually identical to native application -
dynamically and instantly updating their look & feel as the user changes
the desktop setting (which doesn't appear to be isolation at all). And
in fact, I suggest that this is exactly what we want a well behaved
platform-that-is-also-an-application to do.
Oh, and as far as the TBD goes; I don't know that we need to explicitly
mention bootloaders here. They aren't generally implemented as a
platform (hmmm... I guess we could just note that and be done with it).
Therefore, I suggest we update our definition to address this example,
and propose this draft:
*Platform software*:
collection of software components that runs on an underlying software or
hardware layer, and that provides a set of software services to
applications which allows them to be isolated from the underlying
software or hardware layer.
* Note 1: For our purposes, it is those software components/services
provided to applications for the creation or manipulation of user
interfaces and user input - that impact accessibility - which are
of concern for whether something is a platform or not. An
application offering a compute service, such as a 3d rendering
engine where a requesting application isn't using the software
components/services to create a user interface and interact with
the user, should not be considered a "platform".
* Note 2: If applications typically connect directly to the
underlying layer, rather than relying solely on the platform
software components and services, then it is likely that the
software components in the middle are not acting as a "platform".
For example, a program which hosts plug-in's is not a platform if
the plug-in can directly access the underlying layer.
* Note 3: A particular software component may play the role of a
platform in some situations and not in others. Platforms can
include such things as Internet browsers, operating systems,
plug-ins to internet browsers or other software applications, and
under some situations, byte-code interpreted virtual environments,
and other "programming within another programming" environments.
Regards,
Peter Korn
Accessibility Architect,
Sun Microsystems, Inc.
- Next message in Thread: Gregg Vanderheiden: "Re: Concerns about our current definition of a"platform""
- Previous message in Thread: None