3 minutes reading time (619 words)

Improve Joomla! Frontend Semantics & Accessibility

Improve Joomla! Frontend Semantics & Accessibility

Hello, I'm P.Alex ― and believe me, I love all that is connected to the web world. Thanks to Google Summer of Code, this summer I will revise the accessibility and add microdata semantics in Joomla!

The goal of the project is to improve Joomla! to be part of a more accessible and happier semantic web, that will place Joomla further ahead other CMS alternatives. In order to change the way Joomla content is displayed in the SERP my intention is to add rich snippets (microdata), and take control of social snippets (the way Joomla content is shared and displayed in social networks).

About Me

I'm Pruteanu Alexandru, 22 years old, born in Moldavia and I love web.

Now, I live in Italy and I’m studying Web and Multimedia Technologies at the University of Udine. I wake up every morning with the desire to learn something new and always try to widen my knowledge. I'm currently a happy Linux user, and it’s been a year since I’ve become a member of the AsCI association (organiser of the Open Source Day in Italy). I've been using Joomla since version 1.5.

Years ago, when I was still in high school, I was approached for the first time to the web using Joomla CMS. I was using Joomla without knowing how to program, but now I have the opportunity to write a new package in JPlatform and add new features in the Joomla CMS.

Project

Improve Joomla frontend Semantics & Accessibility. This is a Joomla CMS and JPlatform project that make a huge difference both for those who want a semantic and accessible site with HTML validated, and for those who want a standard, and an easy way to generate specific semantics to third party sites such as Facebook and Google Rich Snippets.

What are rich snippets?

Here you can see a Google Rich Snippets SERP

Google Rich Snippets SERP example

Project in Details

This type of project involves considerable research with web standards and must maintain valid HTML. I will create a new package in JPlatform to help deal with issues related to semantics, and make something reusable even outside Joomla CMS, which will be easy to use for developers. This package will include a set of classes on structured data (such as microdata http://schema.org standard).

Example: Microdata JPlatform package structure

Microdata package in JPlatform

Here you can see the full hierarchy http://schema.org/docs/full.html

To implement these new features I'll have to change the output of various components (such as com_content, com_contact) and the default templates by using the new JPlatform package.

Example of Item Scope:

  • Category Blog → Blog scope
  • Single Article → Article scope
  • Single Contact → Person scope
  • Default Template → Webpage scope

But it would be smarter if enabling these features were optional. This project involves changes in the user interface, in components configuration, modules and templates, as well as menu and global configuration of Joomla. I will create a new button in all extension configurations (in metadata options) which enable or disable these interesting features.

Example: Content → Article Manager → Edit → Metadata Options → Microdata semantics (enable/disable) button

I'll also revise accessibility on Joomla CMS frontend in order to add some WAI-ARIA roles and other things.

Conclusion

I would like to the thank Joomla organization in trusting me, and giving me the opportunity to work on this great project. Also special thanks to Emerson Rocha Luiz for mentoring me from the first day, and to Google Inc. for the amazing "Google Summer of Code" program that helps Open Source organizations. There is a lot of work to be done and I will work as hard as I can.

For news about this project follow me on twitter @PAlexcom
If you want to contact me, my home page is P-Alex.com

0
Post your Haikus for July
Module Modernization
 

Comments

Already Registered? Login Here
No comments made yet. Be the first to submit a comment

By accepting you will be accessing a service provided by a third-party external to https://magazine.joomla.org/