| |
 |
Accessible Plugin for Oracle Portal |
|
Premessa

La legge Stanca e Oracle Portal

La soluzione

Descrizione e posizionamento

Com'è stato sviluppato

Le performance

Licenza
L’obiettivo di Oracle è garantire che i prodotti ed i servizi offerti siano accessibili dalla comunità dei disabili garantendo un eccellente livello di usabilità.
Per tale motivo tutti i prodotti Oracle sono da tempo conformi alle direttive emanate dal governo federale degli Stati Uniti Section 508 Accessibility Standards (http://www.access-board.gov/sec508/508standards.htm).
In Italia ,in linea con gli indirizzi formulati dall'Unione europea, il 9 gennaio 2004 è stata adottata la cosiddetta "Legge Stanca sull'accessibilità" (Legge n. 4 del 9 gennaio 2004 "disposizioni per favorire l'accesso dei soggetti disabili agli strumenti informatici"). Il regolamento attuativo contiente le linee guida per valutare il livello di accessibilita’ e la qualita’ dei siti Web e delle applicazioni realizzate con tecnologie Internet. In modo particolare vengono presi in esame 22 requisiti tecnici (valutabili in modo oggettivo) e 12 criteri su cui basare la verifica soggettiva.
Per soddisfare i nuovi requisiti introdotti dalla specifica normative italiana, Oracle ha sviluppato un plugin chiamato "Accessible Plugin for Oracle Portal" che permette ad Oracle Portal di ritornare pagine Xhtml 1.0, garantendo pertanto uno dei requisiti fondamentali della suddetta Legge.
Il plugin viene rilasciato con licenza Open Source ed implementa, estendendola, una libreria opensource chiamata jTidy. Pertanto tutti sono invitati, nella piena filosofia open source, a studiare e modificare il software per migliorarlo e renderlo ancora piu' flessibile.
Pertanto tutti sono invitati, nella piena filosofia open source, a studiare e modificare il software per migliorarlo e renderlo ancora piu' flessibile. Questo software e la relativa documentazione è fornita "cosí come è" e gli autori non si prendono nessuna responsabilitá espressa o implicita, non offrendo alcun tipo di garanzia o supporto per qualsiasi particolare scopo o uso del software e della sua relativa documentazione.
La legge Stanca e Oracle Portal
I 22 requisiti tecnici ricalcano per lo piu’ le linee guida della WCAG 1.0 Level AA a cui Portal e’ conforme; rimane 1 requisito della legge Stanca al quale , al momento, il framework Oracle Portal , usato in modalita’ standard (Utilizzo delle pagine di tipo Standard), non e’ in grado di rispondere pienamente.
Occorre premettere che, per garantire l'aderenza ai requisiti di accessibilità di un generico portale, realizzato con l’ausilio di un un framework, sono essenziali quattro aspetti:
1. L’aderenza ai requisiti di accessibilità delle pagine HTML del portale generate automaticamente dal framework.
2. L’aderenza ai requisiti di accessibilità dei contenuti inseriti dall'utente tramite l’Editor messo a disposizione dallo strumento (Rich Text Editor).
3. L’aderenza ai requisiti di accessibilità dei portlet sviluppati “custom”, e dei realtivi contenuti, collocati nella pagina di Portal.
4. L’aderenza ai requisiti di accessibilità dei template di pagina sviluppati dal web designer.
I punti 3 e 4 sono ovviamente dipendenti dalla tipologia di sviluppo che è stata effettuata per realizzare il portale e non rientrano quindi nell’area di “influenza” del framework Oracle Portal. Sviluppare contenuti e template accessibili è sostanzialmente un punto di attenzione totalmente a carico del progetto di sviluppo del portale e prescinde quindi dalle caratteristiche di Oracle Portal.
I punti 1 e 2 rientrano invece nell’area di “responsabilità” di Oracle Portal.
In particolare il punto 1 è chiaramente dipendente dal codice HTML che viene generato automaticamente dal framework Oracle Portal quando si utilizza il wizard di disegno delle pagine (portal page).
La legge Stanca prevede (Requisito 1) che il codice generato rispetti la grammatica formale HTML 4.01 o preferibilmente la versione 1.0 dell’XHTML, in ogni caso con DTD (Document Type Definition - Definizione del Tipo di Documento) di tipo Strict. Oracle Portal, nella sua ultima versione rilasciata e cioè la 10.1.4.1 (Patch Set 10.1.2.2 di Oracle Application Server 10g) genera HTML 4.01 con DTD di tipo Strict e quindi conforme a quanto richiesto della legge Stanca. Oracle ha già in piano che la prossima major release di Oracle Portal (la release 11) produca automaticamente anche pagine XHTML 1.0 con DTD di tipo strict. Tale conformità riguarda il codice prodotto nella costruzione delle pagine di tipo standard e si applica alla maggior parte dei Portlet rilasciati out-of-the box insieme al framework.
Per quanto riguarda il punto 2, occorre evidenziare che se si utilizza, per inserire i contenuti, il Rich Text Editor presente nelle attuali release di Oracle Portal, quest'ultimo non depura il codice HTML da alcuni tag non conformi.
La soluzione è stata testata con le release 9.0.4, 10.1.2 e 10.1.4 di Oracle Portal ed è di semplice e rapida installazione e configurazione. E' semplicemente sufficiente, infatti, installare sull'infrastruttura esistente una libreria java e un file di configurazione.
La soluzione è liberamente distribuita in modalità Open Source, da Oracle Italia, a partner e clienti che ne vogliano fare uso. La soluzione viene resa disponibile in forma aperta (comprensiva di codice) in modo da consentirne una libera estendibilità ed adattabilità alle specifiche esigenze delle singole realtà operative. Ad esempio, in un portale esistente, la soluzione potrebbe essere estesa per correggere problemi ricorrenti di non conformità presenti in un numero significativo di portlet custom già sviluppati ed in esercizio invece di riscriverli singolarmente ai fini dell'accessibilità.
In sostanza la soluzione consente di ottenere oggi e con le versioni attuali di Oracle Portal quanto sarà possibile ottenere con la prossima major release del prodotto.
Descrizione e posizionamento
Il plugin è una libreria java che viene fatta riconoscere dal container j2ee di Oralce Portal (OC4J_Portal). All'interno di tale libreria vi è un Servlet Filter che viene invocato dal server ogni volta che vengono richieste tutte le URL specificate all'interno del file web.xml sopra menzionato.
Pertanto il plugin entra in funzione dopo che Portal ha costruito dinamicamente la pagina e prima che questa venga restituita all'Oracle Http Server. La pagina viene intercettata, trasformata secondo le regole stabilite all'interno del file di properties, e ritornata all' OHS.
Poiché vi è una stretta relazione tra il container j2ee di Oracle Portal (OC4J_Portal) e WebCache (che ha il compito di salvare nella propria cache anche il contenuto dinamico delle portlet di Portal), il plugin deve essere in grado di non filtrare i messaggi in formato ESI (xml) che i due componenti si scambiano tra di loro.
La libreria inclusa nel plugin utilizza, estende e modifica (corregge), un'altra libreria opensource conosciuta con il nome di jTidy. JTidy è il porting in java di Tidy, che è un tool (scritto in C) e consigliato dal consorzio W3C.
Lo scopo di jTidy è principalmente quello di saper pulire pagine html malscritte (ad esempio: tag non chiusi correttamente, attributi inesistenti o comunque non conformi alle relative specifiche, etc etc). Per poter far questo, jTidy costruisce, partendo dalla pagina HTML, un albero xml in formato DOM. Partendo da questo albero il plugin ha esteso le funzionalitá di jTidy, offrendo altre importanti funzionalità come quella, principale, di saper trasformare la pagina html da un DTD all'altro (da transitional a strict) e di riconoscere gli errori sintattici e grammaticali prodotti da Oracle Portal, al fine di correggerli per ottenere una pagina pienamente validata e conforme al proprio DTD (nel nostro caso XHTML 1.0).
L'impatto sulle performance complessive del Portale è generalmente da considerarsi minimale e sostanzialmente trascurabile per due principali motivi: Il processing (filtering) effettuato dal plug-in produce (misurato nel peggiore dei casi) un ulteriore elapsed time pari a qualche decina di millisecondi; Non viene effettuta nessuna elaborazione (filtering) sulle pagine che vengono direttamente restituite dalla web cache. In sostanza il filtering viene effettuato alla prima elaborazione/richiesta della pagina dopodichè il risultato viene mantenuto in cache per le richieste successive.
Questo software e relativa documentazione viene rilasciato con la seguente licenza Open Source (la stessa che usa jTidy):
/*
* Accessible Plugin for Oracle Portal
* HTML converter from transitional to Strict type.
*
* Copyright (c) 2006 Oracle Italia
*
* Contributing Author:
*
* Emiliano Pecis <emiliano.pecis@oracle.com>
*
* COPYRIGHT NOTICE:
*
* This software and documentation is provided "as is," and
* the copyright holders and contributing author(s) make no
* representations or warranties, express or implied, including
* but not limited to, warranties of merchantability or fitness
* for any particular purpose or that the use of the software or
* documentation will not infringe any third party patents,
* copyrights, trademarks or other rights.
*
* The copyright holders and contributing author(s) will not be
* liable for any direct, indirect, special or consequential damages
* arising out of any use of the software or documentation, even if
* advised of the possibility of such damage.
*
* Permission is hereby granted to use, copy, modify, and distribute
* this source code, or portions hereof, documentation and executables,
* for any purpose, without fee, subject to the following restrictions:
*
* 1. The origin of this source code must not be misrepresented.
* 2. Altered versions must be plainly marked as such and must
* not be misrepresented as being the original source.
* 3. This Copyright notice may not be removed or altered from any
* source or altered source distribution.
*
* The copyright holders and contributing author(s) specifically
* permit, without fee, and encourage the use of this source code
* as a component for supporting the Hypertext Markup Language in
* commercial products. If you use this source code in a product,
* acknowledgment is not required but would be appreciated.
*
*/
|
|
|