Thursday, September 29, 2005

Accessibility Compliance

What is Accessibility Compliance?

As was mentioned in the previous discussion on code compliance, there is some substantial overlap between code and accessibility compliance. However, the one distinction is that code compliance is more geared toward coding a webpage in a way that it will be functional for all methods of viewing it, and accessibility deals more with ensuring that it is easily comprehensible by all people viewing it.

The common association with accessibilty standards is that these are for viewers with disabilities. That is not wholly accurate, but it is part of what they are for. Overall, you want to create your site in a way that you do not alienate your visitors due to either technical or physical limitations. For technical limitation, think of how your website would be viewed by someone using an alternative method of accessing the Internet (such as a small cell phone or PDA display, or even an in-vehicle dash display). For physical limitations, you should keep in mind that millions of people accessing the Internet are disabled in some way. An easy comparison is that your business would not be considered respectable if you didn't allow for handicap access ramps, or other accomodations for those with limitations, so why would you consider doing that with your online business presentation.

These standards are, most certainly, considered something that is not only proper etiquette for a website to use, but also extremely good for business. However, U.S. government websites are now required to make their websites accessible, and anyone who plans to work as a web developer in any sector or sub-sector of the U.S. government should make certain they understand how to make a site accessible.

The Web Accessibility Initiative (WAI) which is a large subgroup of the W3C. When you are dealing with creating a webpage(site) that follows the standards set by the WAI, you will be following the Web Content Accessbility Guidelines (WCAG). The current standards set for WCAG is version 1.0 and contains 14 general principles of accessible web design. Keep in mind that these are just categories, and there are many elements within each.

14 General Principles of for WCAG 1.0
  1. Provide equivalent alternatives to auditory and visual content. (ex: using alternative text for images that don't display)
  2. Don't rely on color alone. (making sure that there is proper color use, and that the site is still understandable if it was all black & white)
  3. Use markup and style sheets and do so properly. (this goes along with code compliance & separating design from code)
  4. Clarify natural language usage. (indicating the site language in code, and explaining any abbreviations)
  5. Create tables that transform gracefully. (use tables for tabular data mostly, and make sure to lable your tables using headers and footers to describe what they are)
  6. Ensure that pages featuring new technologies transform gracefully. (make sure that your page still is understandable without all the frills - like scripts and flash)
  7. Ensure user control of time-sensitive content changes. (anything that is active on your page - like scrolling or blinking or sound - should be able to be turned off by the user)
  8. Ensure direct accessibility of embedded user interfaces. (again, making sure your site layout follows guidelines)
  9. Design for device-independence. (take into account that users may be using various methods to access your site, and provide alternate ways to get to information - like shortcuts and links)
  10. Use interim solutions. (Don't wait, start changing your site now.)
  11. Use W3C technologies and guidelines. (Be sure to use the current coding standards.)
  12. Provide context and orientation information. (ex: Clearly lable your page and data sections - especially if you use frames.)
  13. Provide clear navigation mechanisms. (ex: Use a consistent navigation layout for your whole site - not putting the links on the left on one page, then the right on the next.)
  14. Ensure that documents are clear and simple. (Keep your information relavant, and use language that is understandable by your readers.)
Now, as I said above, there are subaspects to each, and those will be addressed in a later article. However, if you want to jump ahead you can take a look at the full page explanation of the WCAG 1.0 list of 14 needed aspects.

The 3 Priority Levels & Conformance
Each of the 14 guidelines has checkpoints within it. For instance, let me give you an example of one of the checkpoints for the first guideline.
Guideline 1. Provide equivalent alternatives to auditory and visual content.
Checkpoint 1.1. Provide a text equivalent for every non-text element (e.g., via "alt", "longdesc", or in element content). This includes: images, graphical representations of text (including symbols), image map regions, animations (e.g., animated GIFs), applets and programmatic objects, ascii art, frames, scripts, images used as list bullets, spacers, graphical buttons, sounds (played with or without user interaction), stand-alone audio files, audio tracks of video, and video.
Priority Level: 1

Each checkpoint is assigned a specific priority. There are 3 levels of priorities possible for each checkpoint.
  • Priority 1 : A Web content developer must satisfy this checkpoint. Otherwise, one or more groups will find it impossible to access information in the document. Satisfying this checkpoint is a basic requirement for some groups to be able to use Web documents.
  • Priority 2: A Web content developer should satisfy this checkpoint. Otherwise, one or more groups will find it difficult to access information in the document. Satisfying this checkpoint will remove significant barriers to accessing Web documents.
  • Priority 3: A Web content developer may address this checkpoint. Otherwise, one or more groups will find it somewhat difficult to access information in the document. Satisfying this checkpoint will improve access to Web documents.
Now, based on whether or not you followed each of the checkpoints for the 14 guidelines, and which priorities you completed, your website may lay claim to a certain level of conformance. If you've seen websites with a little button that says 'AA' or 'AAA' then you will understand where that comes from in the following list.
  • Conformance Level "A": All Priority 1 checkpoints are satisfied.
  • Conformance Level "AA": All Priority 1 and 2 checkpoints are satisfied.
  • Conformance Level "AAA": all Priority 1, 2, and 3 checkpoints are satisfied.
So, overall, you want to aim for following the conformance to the highest level that you can. Aiming for 'A' is a minimum. You want to always aim for the 'Triple-A' ranking.


Wednesday, September 28, 2005

Standards Compliant Code

What is Standards Compliant Code?

Well, it actuall is more of an overall category than a single thing, however, I'll define it as this:

"Standards Compliant Code is the utilization of the current standards combinations, as set forth by the W3C Recommendations, in order to create code that uses certain standards to ensure that it is readable by the greatest number of people and systems. Essentially, the common feature is to compartmentalize in a way that you keep the code separate from the appearance of a page and (in some cases) from the data displayed on the page."

Now, you'll notice that I said the 'utilization of the current standards combinations' and that is a key point to make. The HTML language is not the only option, there are variations that have come about through the incorporation of XML, and thus the use of XHTML. Also, you can see that I mentioned that the appearance of a page should be kept separate from the page code. That is where the use of CSS will take place.

What is the benefit of following the W3C Standards?

There are many, but I'll highlight some of the most important.

The first thing to consider is that when you write code not following W3C standards your page may look different in different browsers. Yes. There are other browsers besides Internet Explorer, in fact, I personally don't touch IE anymore. I use FireFox as my primary browser and Opera as my alternate. Why would they look different? Well, unfortunately not all browsers interpret poorly written code in the same way. Some are more forgiving than others, so your page may display in a variety of ways.

Another thing to keep in mind is that, without standards compliance, your page may also look different depending on operating system. Yes. There are other operating systems besides Windows. There is a very active group of Linux users in the world, as well as those who use Macintosh, Unix, etc... Again, why would it look different? Many reasons, but one is that different operating systems come with different fonts (for example) and if you use a font in your page that someone doesn't have on their computer to be able to read -- then they won't see it the way you made the page.

Additionally, without standards compliance, your page may look different depending on the screen size of the person viewing your page. Your page should be flexible enough to accomodate a variety of screen sizes, but if its not, it may end up looking far too huge or too small on various screens.

Also, standards compliance often encompases accessibility compliance, though accessibility expands the concept further (including coding and designing your page in a way that will not be difficult for a person with disabilities or physical limitations to still be able to access) -- but I'll be addressing those aspects later.

Overall, there are many reasons why you want to use the standards compliance, and it is to your benefit to learn now, not later, how to do it.


Tuesday, September 27, 2005

Elements of Good Web Design

"The Overview"

The Internet is chock full of webpages, and it is growing at an amazing rate, but I think that most people can agree that not everyone has an eye for good web design. I bet you have run across many webpages that just made you cringe and click the 'X' as fast as you could.

In the late 90's everyone was following the 'more is better' concept. Remember all the webpages filled with butterflys floating across the screen, a bouncing rabbit in the corner, a spinning '@' for email, images of books flipping open repeatedly wanting you to sign the guest book, and little space stars following your mouse pointer around -- all on one page? *smiles* I remember it too, but thankfully, only in nostalgia for what we have moved past.

Some things are easier to give up than others. We have all this neat stuff! So much technology, and we want to use it all! It reminds me of the 80's, when it was about how much jewlery and makeup we could wear, and how big we could spike our hair out. :P Admittedly, I do miss some of the things about the 80's, and I do think it was a great time of growth, but much like that we have to look at how things are in technology now, and see the mistakes we made then as growth.

There are several elements to really good webdesign, but I will be focusing on what I feel are the most vital:

Now, these things may seem basic to some people. Sure, you want to use code that doesn't break, you want it to be something that people can access, you don't want the colors to look awful, nor do you want to make it hard to use, and of course your content is useful!

However - you may be surprised exactly how much more goes in to designing a truly good website. Each of these elements listed means so much more than it may seem at first glance, and this will be the start of a new article and tutorial series on how to make a really good site.

Please feel free to comment along the way.


Monday, September 26, 2005

FreeRAM - Product Review

My discovery of FreeRAM began after at least a year of frustration at not having enough RAM on my computer for the things I do daily. Granted, I suppose I could just go buy more, but I use my laptop predominantly, and my RAM has to be custom ordered for this one and costs a fortune. So, I've not done it. Instead, day in and day out, I'd dealt with a computer that would start lagging severely after a few hours. I really wanted another solution.

I decided to look around for something that would speed up my computers RAM, and better allocate the memory I had to the programs I was using. Lo and Behold! I found one that did that, and was free! It's called FreeRAM. I ran across the YourWare Solutions website, and found a free download of FreeRAM XP Pro.

The two features in their list that really drew my attention were:

"Automatic, real-time memory monitoring and optimization.
AutoFree option intelligently optimizes RAM without sacrificing performance."

That was enough for me, and exactly what I was looking for. I downloaded, installed, and ran it immediately. I have it set to run on start-up, and free my RAM as soon as all my programs are done loading. Then, I set it to auto-free my RAM every time my RAM drops below 25megs.

After only a few days, I saw a huge difference in what it was like to use this computer. My lovely custom laptop with the horridly expensive RAM could now wait longer to get more. This was freeing my RAM regularly while I was using it, and it handles it for me in the background.


Saturday, September 24, 2005

Avast! - Product Review

About four months ago I started getting that familiar pop-up window on my computer. My McAfee VirusScan software was so kindly reminding me that I needed to renew my virus updates subscription - repeatedly. I'd be in the middle of something, and there pops this annoying red and white box - again. Now, if it had been just once a day, that might not have pushed me over the edge, but it wasn't just at load time, it was periodically while I was using it. And these people thought I was now going to pay them money to renew my subscription? Ha!

So I started looking for some alternatives, and came across the Avast website. Now, being the owner of a web design business, my first thought was "Oh, nice website." and so I paid a bit more attention to it. In my mind, people who take the time to make a nice and appealing site, have a product they are serious about getting out there. So, I browsed around on the site some, and came upon the Free Home Version of Avast! 4. (Note: They also have a version for Linux for home that is coming out next month.)

I wanted three basic things out of a free anti-virus software. I wanted it to have automatic updating, take less active memory (RAM) from my computer to run than McAfee, and I wanted it to be updated frequently because new viruses come out so often. When looking at the features, I found that it did include everything I was looking for, and then some. Heck, they even have skins I could download to change the appearance! Not that I'm particularly concerned with my anti-virus software looking pretty, but it was just a neat little addition. Now, it did warn me that after 60 days I'd have to t register online for a free registration key to keep the software going. Then, annually, get a new key. But they made sure to highlight that those key codes are always free. So, I gave it a shot.

I uninstalled my McAfee, said a none to remorseful 'Goodbye' to the red & white popup, and installed Avast! on my computer. The very first thing I noticed on reboot was that it didn't drag my system the way McAfee did. I took a look at the running processes, and noticed that it was taking significantly less RAM to run than McAfee. Woo! One promise fulfilled so far. It also has a very easy interface for picking and choosing what it should monitor in programs. If you want it to watch your email clients and online email, messenger programs, etc... it's very easy to set.

The real test happened over the next few weeks. As I used it, I was seeing some very frequent updates come in for the software. So now, it had scored 3 for 3. I got my desire for auto-updating fulfilled, frequent updates, and less ram needed by my computer.

I've been using it since then, and I cannot say I'm at all sad to see that annoying pop up gone.