Accessible Personalized Portals


Web portals constitute a rapidly evolving medium for transferring information and knowledge, as well as for establishing the means for cooperation and the coordination of activities among different parties. More specifically, a Web portal is a Web site that provides a gateway to resources available on the Internet or within an intranet. A Web portal typically includes a number of facilities for access and navigation of information, socialization, collaboration, and trade, as well as other user aid facilities. Although portals are accessed by a wide range of different parties, most portals are designed with limited attention to the different individual needs and preferences of Web users. As a result, they often present serious shortcomings in terms of usefulness, ease of access and use, and subjective satisfaction of the users.

Given the above, the necessity emerges for a systematic framework for developing Web portals that can be personalized according to different user needs and requirements. This article presents a design and development portal framework, along with the related methods, for producing portals that are extensible, reusable, highly customizable, and accessible and usable by all, including people with disabilities. The term extensible refers to the possibility of up-scaling a portal to support new functions, while the term reusable refers to possible alterations of a portal to address the needs of a different application context. Additionally, customizable refers to a portal implementation that enables end users to alter the interface with respect to their personal needs and preferences. Finally, accessible and usable by all refers to a portal that can be accessed and used in various types of context, and by target users with different characteristics and abilities, including people with disabilities.

Such a framework is intended to apply concepts and principles of universal access and design for all in the development of Web portals. Universal access concerns the right of all citizens to obtain and maintain access to a society-wide pool of information resources and interpersonal communication facilities, given the varieties of context (Stephanidis et al., 1998, 1999). In the context of universal access, design for all advocates a proactive approach towards products and environments that can be accessible and usable by the broadest possible end-user population, without the need for additional adaptations or specialised (re-)design.

The development of universally accessible portals entails the concept of Web accessibility. Web accessibility means access to the Web by everyone, regardless of disability ( As a result, Web portals need to address the interaction requirements of the broadest possible end user population, including people with disability.

The framework presented in this article includes a Web portal architecture along with the related services, and adopts user profiling for personalization purposes, including customization of features that support accessibility and usability for diverse target user groups.


A multi-tier architecture is adopted in the Web portal personalization framework, as it allows separating the required user interface mechanisms from application logic and database storage. In particular, three layers are considered as necessary: data access, business logic, and presentation layer.

Data Access Layer

The data access layer is responsible for storing and communicating data between the database and the application.

Database Implementation

This layer uses stored procedures for faster retrieval or insertion in the database, reducing the amount of client side processing by looking up data, and maintaining key values and internal integrity. Furthermore, using stored procedures, the database server creates for each query a plan that includes all the information required to return the data effectively to the client. This plan is stored in the system’s cache, so that it can be reused when needed (Dalton, 1997). Another advantage of the stored procedure is that the database server can create indexes, thus increasing the speed of interaction. An example of a stored procedure is presented in Figure 1.

The ability of a Web portal to support multilingualism is a fundamental principle in order to serve people with limited skills in foreign languages. Therefore, multilingualism needs to be supported both in terms of user interface and application content stored in the database. In the database layer, a design method for the separation of multilingual and non multilingual content is used. Each database table containing multilingual content is divided in two separate tables, one containing the non multilingual content and the other containing the multilingual one, as shown in Figure 2. In such a way, no redundant information is stored.

Figure 1. Stored procedure example

Stored procedure example

Figure 2. Example of multilingual database table

Example of multilingual database table

Figure 3. Example of Web-service implementation  Example of Web-service implementation

Figure 4. Example of xml description implementation

Example of xml description implementation

Web-Services: xml Descriptors

In the data access layer, the stored procedures created in the database are accessed by Web services (see Figure 3) that are subsequently available to the business logic layer. Web services can be easily implemented using xml descriptors for communicating with the stored procedures (Jorgensen, 2002). The xml descriptors (see Figure 4) provide information regarding the parameters, name, and return values of each procedure, while Web methods are used to read the xml descriptors, call the requested stored procedure, and return the results of the operation.

Business Logic Layer

The business logic layer incorporates the functions needed to implement the application. More specifically, this layer contains classes implemented with C# (Liberty, 2002) that form a higher level ontology specification of the database schema (see Figure 5). The aim of this layer is to transform the data received by the Web services of the data access layer to instances of the ontology specification. In order to achieve that, special methods are used to de-serialize the data received, and transform them into meaningful instances of the ontology. Additionally, this layer contains functionality that is used by the interface layer to perform certain actions. An example of such functionality is presented in Figure 6, where a function for retrieving folder details is illustrated. The aforementioned function receives three arguments. The first argument is used to determine the Web-method to be called and the other two arguments are transmitted to the selected Web-method. The results of each call are in turn deserialized and transformed into an array of business logic objects, as shown in Figure 5. This technique makes the business logic layer totally independent from the implementation of specific parts of the data access layer, allowing the replacement of the data access layer without redeveloping the business layer. This strategy is followed in order to make the development of the higher levels of the portal easier and closely coupled with the UI functionality abstracting, in that way, the logic that concerns how the user interface works by the actions it performs.

Presentation Layer

The presentation layer is responsible for the user interface of the system and incorporates the designs created during the design phase. For the interface layer, a one page based interface architecture is used. The term one page is used to define the portal structure where the content of each page requested by end users is composed by the union of the content provided by the portal template, and the content of the user components that are dynamically added at runtime. For each user page request, the portal needs to perform certain actions. Initially, when the user requests a page, an empty page container is loaded with no content at all. Subsequently, a form container is created to host all the specific page components. The next stage is to access and select the page template among several different templates available. The page template is used to provide the context and the positioning scheme. After the page template is loaded, the portal requests and loads the interface components that will be used to compose the final page to be sent to the client. For each component, the portal must specify the UI container (see Figure 7) that will host the particular content and the positioning of the component in the final page. With the completion of this process, the content is added to the appropriate container and then placed at their positions on the page. The process described is presented graphically in Figure 8.

Figure 5. Business logic layer’s class

Business logic layer's class


User profiling is used in the presentation layer in order to achieve accessibility and usability of a portal. In general, user profiling is defined as the process of gathering information specific to each user, either explicitly or implicitly. In the portal structure, a user profile typically includes demographic information about the user (such as age, country, education, disability, skill level, etc.), information about the individual’s interests (e.g., in terms of professional or scientific needs), as well as individual patterns of use and behavior when interacting with the portal. This information is exploited in various ways towards tailoring the portal to the user’s specific needs (e.g., through filtering of content of non-interest to the user, customization of the contents presentation, and portal structure).

More specifically, user profiling is used to enhance, among others, the following qualities of the portal.


User profiling based on individuals’ interests is used for content-based filtering. This involves a process of classifying the contents of a portal in semantic categories. Then, the efficiency and effectiveness of information retrieval and presentation is improved, as information search is limited to categories that match the user’s specific profile (i.e., categories of interests). Content management is particularly important for Web portals, as the content of portals tends to be dynamic and subject to constant changes. Particular attention is paid to the classification of content in order to ensure the creation of comprehensive taxonomies, based on different target audiences and their information requirements, constraints or boundaries.

Figure 6. Business logic layer’s function

Business logic layer's function


Web accessibility means access to the Web by everyone, regardless of disability. This implies that people with disabilities can perceive, understand, navigate, and interact with a Web portal. Additionally, the Web accessibility guidelines (WCAG) of the World Wide Web Consortium (W3C, http:// www. w3 .org/TR/WAI-WEB CONTENT/) play a critical role in making the Web accessible. These guidelines explain how to make Web content accessible to people with disabilities.

However, following them will also make Web content more easily available to all users, whatever user agent they are using (e.g., desktop browser, voice browser, mobile phone, automobile-based personal computer, etc.) or constraints they may be operating under (e.g., noisy surroundings, under- or over-illuminated rooms, in a hands-free environment, etc.). Following these guidelines will also help people find information on the Web more quickly. The guidelines do not discourage content developers from using images, video, and so forth, but rather explain how to make multimedia content more accessible to a wide audience. The portal framework implies compliance with WAI WCAG (levelAAA) guidelines to achieve the portal’s accessibility. Additionally, predefined and configurable user profiles are elaborated, containing data about different individuals’ interactions needs related to accessibility. These profiles allow the portal to filter information and even alter the portal structure to specific user needs and requirements. Two examples of the way the alternative page templates and UI containers can be used to enhance the accessibility characteristics of the portal presented to each user are illustrated in Figure 9 and Figure 10. Figure 9 presents an example of the different stages of functionality abstraction in a container window in order to address the needs of sighed users in the less accessible version, and blind users in the more accessible version.

Figure 7. UI containers

UI containers

Figure 8. “One page ” based interface architecture

"One page " based interface architecture  

Figure 10 presents the transformation of the portal template to address the needs of sighted users in the less accessible version (three columns template), and blind users in the more accessible version (one column template).

Figure 9. Page template for UI container example 1

Page template for UI container example 1

Figure 10. Page template for UI container example 2

Page template for UI container example 2


In order to support enhanced usability, in the personalization framework, the structure and layout the portal can be customized to meet the individual user preferences. Users can define in their profiles, and select among different interaction styles the most suitable to their preferences in terms of Graphical User Interface components and layout options. The users may also further customize an interface by rearranging the order and structuring of pages, as shown in Figure 11.


This article discussed a framework for the development of Web portals based on: (1) an architecture supporting portal extensibility, reusability and customization, and (2) user profiling and related methods as an approach to overcoming usefulness, usability and accessibility limitations, and supporting personalization of portals. Using different individual’s interaction needs and physical characteristics from user profiles, a portal can filter information and present it in a customized way, incorporating various user needs, and addressing accessibility related issues. Additionally, individual’s user preferences can be also be gathered in user profiles, in order to configure the structure of the portal, the preferred GUI components, their layout, their absolute positioning, and their aesthetic characteristics.

In order to continuously preserve user support and satisfaction, a constant effort to improve portals should be adopted. For example, statistical information that is gathered and stored in user profiles during the interaction with the portal could be analyzed to build patterns of use, and identify the behavior of the user. Using information from the user profiles, a portal could transform the UI representations of the system and the interactive content presented, taking into account the user experience during the system use, to achieve usability of the system. Generally, these new usage patterns and preference matches may lead to very valuable improvements and innovations of the system.

Figure 11. User interface customization

User interface customization


Extensible: Portal that offers the possibility of up-scaling to support new functions.

Highly Customizable: Portal that enables end users to alter the interface with respect to their personal needs and preferences.

Reusable: Portal that supports alterations to address the needs of a different application context.

Universal Design: The conscious and systematic effort to proactively apply principles and methods, and employ appropriate tools, in order to develop interactive products and services which are accessible and usable by all, thus avoiding the need for a posteriori adaptations, or specialized design.

WAI: Web accessibility initiative.

WCAG: Web content accessibility guidelines.

Web Accessibility: Access to the Web by everyone, regardless of disability (

Web Portal: A Web site that provides a gateway to resources available on the Internet or within an intranet.

Next post:

Previous post: