>Don't say "avoid using tables". Say "Use tables for appropriate
>applications."
agree
If we would like to offer data content , tables are the best way to present
them.
This tables have be wellformed and structured sematically correct.
The easiest way is to use scope. If we got nested tables it could be
necessary to thing about headers and IDs.
Last week I saw the site of our german soccer league and it was very funny
to see that they present the club table into css pseudo tables.
What is better for a data table than soccer results!?
> 6. Use dl tags for Forms.
I think that's not a good idea.
Because of two reasons.
Imagine the normal form structure: we have got lables and textfields.
Somtimes we got checkboxes.
The label of the checkboxes are normally positioned on the other site that
the normal one of textfields.
This is a used standard we can read in the Apple , Linux and Mircosoft
Interface guidelines.
So we need exceptions .
The result is that we have more trouble with the exceptions than it helps.
The second reason is the semantic. For whom we need the semantic? Not for
visuell presentation.
If Screenreaders - Users take alook at the forms the jump into the form
mode. In this mode they aren't able to interpret structured html elements.
Like ol ul dl p etc.
So this elements are needless.
The best way is to present forms as clear as possible.
Div and spans are without a structure and the best way to style the forms
with CSS.
bye Angie
2009/4/22 Jeremy <jeremy...@gmail.com>:
>
> 4. Extend module <jdoc:include..> default to include more parameters,
> such as a containing div id, to help reduce the need for overrides.
>
Can you expand on what you mean by that, or what the underlying
problem is that you are trying to address?
>
> 7. Proper usage of elements and the usage of tables for tabular data
> only. Will require a core css file. The better the usage of
> elements, the less we will have to rely on classes or ids.
>
A man after my own heart - excellent way of putting it.
> Don't say "avoid using tables". Say "Use tables for appropriate
> applications."
It is completely possible to code a complete layout without ever using tables,
even for tabular data. If your CSS is setup correctly you can achieve some of
the most amazing layouts you can dream up without relying on any archaic HTML
crap.
XHTML should only be used for structuring a page, CSS for the layout and
styling. Structuring is just a subset of layout, meaning the main structure
of a page is setup via div's and span's, of course your base tags p, h1, h2,
h3, img, a, and so forth.
The rest should be handled in the CSS.
Thus tables can be completely avoided.
Just my opinion.
--
Damien Hodgkin
--------------
Independent Web Developer
Pri. Email: drac...@gmail.com
Alt. Email: damien....@gmail.com
Phone: 207-513-0678
Twitter: dracul01
1. We should Use XHTML according to the W3C specifications for the markup.
Explaination:
Strict would be nice, but we should take care that form elements don't have
the same content for name and id like now.
If we choose strict in the template we should inform the users that some
editors insert deprecated attributes. The combination
Strict doctype and editor produces invalid output.
2.Semantic
We should write grammatically correct and descriptive markup.
We should use markup for headings that express the hierarchy of information
on the page.
We shouldn't skip any levels in the hierarchy of headings in the markup.
It would be nice if we can use configureable headerlevels.
Structure should be kept flexible to accomodate different types of pages.
3.Tables
We should use tables to display relational information and do not use them
for layout. Screenreaders can only interpret tabular data correctly if these
are
presented in tables. Fake-tables built using styles can not be interpreted
correctly!
We should use the th (table header) to describe a column or row in a table
with relational information and
Group rows with only th (table header) cells with the thead (table head)
element. We should group the rest of the table with the tbody (table body)
element.
We should use scope attribute to associate table labels (th cells) with
columns or rows.
and headers and id attributes to associate table labels (th cells) with
individual cells in complex tables.
4. Forms
we need labels for all form elements, group them with fieldsets and add
legends.
Dl, ol und ul are semantic elements and have a clearly defined semantic
meaning. They should never be used for grouping of other elements
without that meaning. Using dl/ol/ul for arranging form elements is rather
worse than to use table elements for this purpose. Both are misuses.
There are some cases where it makes sence to use list-elements for example
checkboxes like :
What's your favorite color:
red
green
yellow
Input elements (consisting of label/input field) must always be arranged
using un-semantic elements like divs and spans.
Indicate which fields are mandatory and which are optional.
Add ankers to #content at the form action
Do not use the same content for id and name of form-elements.
5.Links
Links on websites should not automatically open new windows without warning.
6.
Give meaningful and consistend names to id and class attributes.
We should devolp nameconventions.
We should measure between styling flexibility and less code.
7.Template:
a)CSS should be placed in linked files and not mixed with the HTML source
code.
b)Pages should remain usable if a web browser does not support CSS.
c)Put the content of the page in the HTML source code in order of
importance.
d)The alt attribute should be used on every img (image) and area element and
should be provided with an effective alternative text.
Decorative images should be inserted via CSS as much as possible.
Informative images should be inserted via HTML.
e)We need a logical order for the links on the page.
f)Do not make it impossible to tab to links and make the focus visible via
CSS.
g)Give blind visitors additional options to skip long lists of links bzw.
provide a page index with links to navigate to the different topics .
8.Scripting:
If client-side script is used, use ECMAScript according to the
specification.
If elements in the HTML hierarchy are to be manipulated, use the W3C DOM
according to the specification.
Add the focus to actual selected elements.
9. mod_chrome
Maybe we can add the function beezDevision into the standard to be flexible
with headerlevels of various modules
10. I think we should take into account future developments in HTML 5 and
XHTML 2
1. Validates to nominated standards
2. Semantically relevant markup (rolls up all the stuff on tables,
list for menus, forms ideas, micro-formats, etc)
3. Due consideration is given to support RTL sites
4. Adheres to nominated accessiblity principles (need to dicsuss which ones)
5. Standardised nomenclature (naming practices, etc)
6. Aims to work on nominated browser versions (pick which ones)
7. Consideration is given to a variety of devices (phones, etc)
8. Principles for use of scripting languages (unobtrustive javascript,
rich javascript, Mootools std, etc)
9. Consideration of search engines optimisation principles
10. Hrm, maybe about meta data??
This would form your "best practices" policy document which would
state the objectives and give guidance on how to comply. That sound
about right?
1. XHTML strict only, for structure ONLY.
2. Zero tables period. Tabular data can be displayed just as nicely using CSS.
3. RTL is a given.
4. Accessibility is something I really feel strongly about, as I have some
friends that are Blind or have other physical handicaps. So the layouts
should use a global CSS file that @imports the varies other CSS files for the
accessibility stuff.
5. Naming conventions should not only include the layout stuff (id's, classes
etc.) but variables in the templates. I am sure this has probably been
mentioned.
6. Move toward a fully MVC architecture. When I say fully I mean everything
even the plugins need to be split into Models for data(DB, SOAP, WSDL etc.),
Views for displaying data, and Controllers for handling all of the business
logic. I am new to Joomla! and am not sure how MVC is implemented if it is at
all. If not I can recommend either PHPnMVC by my man Tony Bibbs, or Zend
Framework (which I am recently having a torid love affair with :).
7. DL, UL or OL for Definition Lists, Unordered Lists and Ordered Lists only.
Once again preference, but, Forms layout can be achieved with CSS.
8. Styling CSS and Layout CSS should be in separate files and @imported into
the global CSS file.
9. Scripting, I myself prefer either Dojo or JQuery. But that's all
preference.
10. SEO is something I feel should be low priority. The search engines are
going to find your relevant data no matter what if it's good.
There's my list, and my views. I could have ranted for a while on some points
but luckily I chose not to ;)
Aim for simplicity. The core output of components should aim to use
the most simple semantic markup while relying on the least amount of
CSS to achieve the job. Advanced formatting, such as being able to
determine what the third item in a list is, should be done via custom
layout overrides. The core output should allow for bare H1, H2, etc
tags to have a consistent usage across all extensions. It should
follow some of the lessons learned in the administrator where, for
example, a table with a class of "adminList" just works with a
consistent format across the board with minimal ancillary classes
required (relying on styling of the hierarchal structure).
Regards,
Andrew Eddie
http://www.theartofjoomla.com - the art of becoming a Joomla developer
2009/4/23 Andrew Eddie <mamb...@gmail.com>:
That is *much* appreciated, Jeremy. I am looking forward to seeing this!
As Jeremy is saying, we still welcome feedback today.
----- Original Message -----From: Rob SchleySent: Thursday, April 30, 2009 1:19 PMSubject: Re: xHTML Principles for Layout Development
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.287 / Virus Database: 270.12.10/2088 - Release Date: 04/30/09 06:01:00
Jeremy compiled a list of our earlier discussion (you can download the
file at the bottom of google groups). That was pretty massive so I've
tried to break it into smaller chunks. I put it in a spreadsheet so I
could assign different categories and groupings. I've picked a couple
of controversial topics we can discuss individually (forms, tables,
naming conventions). I'll post separate messages on the other 2
topics.
Forms
The biggest divergence of opinion was in how to markup forms.
There are some things that should be done just in terms of usability
and accessibility within the layout:
a. Associate the label with the form element by using the "for" in the
label
b. Use fieldset and legend to group appropriate items together
c. Make sure that the order of the elements makes sense when tabbing
through them
d. Make sure that the form can be completed and submitted using the
keyboard
e. Don't use just color to indicate what are required elements and
indicate required fields/special formatting to the user before they
input the field
We have received the following theories on how the markup should be
done:
dl lists
ol lists
ul lists
tables
divs &/or spans
Forms are not only used on the Contact Us page, but on nearly every
page asking for information from the user. Here are some of the
examples of places that use forms:
Contact Us page
A survey
A poll
Filter/Search/Order on groups of data
Pagination display pages
Login screens
Lists of articles in the Article Manager
Creating/editing an article
Parameters, both as part of an entry page or on their own
If we are really writing semantic xHTML would be want consistancy for
all forms or should we look at the use of the form to dictate the
markup? This will have ramifications on how the CSS is done.
I am perfectly willing to have my mind changed (or go with what's
decided) but to start the discussion and make clear my biases here's
what I think:
The use of the form should dictate the markup. I would decide how I
would mark something up if it weren't a form and mark up the form the
same way.
Therefore, I'd probably do it this way:
Contact Us page - divs
A survey - ol or ul
A poll - ol or ul
Filter/Search/Order on groups of data - divs
Pagination display pages - divs
Login screens - divs
Lists of articles in the Article Manager - table, because I see it as
tabular data
Creating/editing an article - div
Parameters, either as part of an entry page or on their own - ul
There are definite accessibility reasons not to use table for strictly layout purposes so I think that is beyond just being trendy. However, I agree that the trend toward NO tables is inappropriate. When the information is related in multiple dimensions, such as a list of weblinks with urls, descriptions and hits, a table can be semantically correct.
Andy
From: joomla-...@googlegroups.com [mailto:joomla-...@googlegroups.com] On Behalf Of klas berlic
Sent: Thursday, June 04, 2009
12:26 PM
To: joomla-...@googlegroups.com
Subject: Re: xHTML Principles for
Layout Development
a. Use tables to display relational information and do not use them
Four of us (Jen Kramer, Barb Ackerman, Meg McCarty and myself) got together to do some coding based on the principles. As was only to be expected, it took us most of the time just assimilating the principles and looking at how they applied to the existing core templates in Snowflake. We didn’t get to a point where it was workable to bring in remote players, so it remained local. I was sorry about that, but there has been a suggestion we do it again next Wednesday afternoon (before our Joomla users group meeting).
The views we looked at most closely were the Content-Articles (default & edit), Content-Category Blog, Content-Category List. For the most part, we had few changes to make.
The files had 2 container divs, the outer with class “joomla”, a space, then the pageclass suffix, the inner with a class of the view (i.e. “article” or “cat-bg”). We consolidated that to one div and dropped the joomla class and the space before the pageclass suffix. We thought that if people needed to know it was Joomla then they could add the div in the template. We like the idea of the pageclass being a separate class (with the space), but the same thing can be accomplished by starting the pageclass suffix with a space and that allows you to also use pageclass suffix as a true suffix if you need to.
We also changed the class “headliner” to “titleblock” because that seemed a clearer indication of what it was.
We changed the class “postmeta” to “iteminfo” again, for clarity.
On the Category List we added thead/tbody and removed the align & width style attributes and put in individual classes instead so that could be done in CSS instead of in the HTML. *** Implications *** To do this properly semantically we need to give each of the table columns a different class so the widths can be individually done in CSS. That adds a lot of classes to the CSS. It also has implications for 3 rd party developers because they would need to had new classes with CSS that might not be in the regular template. Another option would be to assign classes of width-5, width-10, width-20, width-25, width-40, width-45, width-50, width-60, width-100 which could be preset up in the CSS allowing the 3PD extensions to slip in easily. Comments?
We added scope to the table.
We added a header for the filters and labels to the filters.
On Amy’s suggestion I’ve created sample wireframes for two of the screens (Article and Category Blog) which show the structure & class/id. I’ll add those .png files to the files at the end of the discussion list.
The new forms engine still has to be implemented. We didn’t try to tackle that.
*** Nested Category behavior questions ***
The old section code was still in place. We didn’t attempt to change it because we weren’t sure how the behavior should work. With a Section/Category you had limited options. Show the whole section or show only a specific category. With nested categories what do you do about grandchildren? Can you attach articles to all levels of categories or only the bottom most level? What if a category has both articles and sub categories?
Thanks,
Andy
-----Original Message-----
From: joomla-...@googlegroups.com
[mailto:joomla-...@googlegroups.com]
On Behalf Of Jeremy
Sent: Tuesday, June 09, 2009 6:01 AM
To: Joomla! CMS Development
Subject: Re: xHTML Principles for Layout Development
I like the list, and am not one to report on mobile or SEO that much.
Four of us (Jen Kramer, Barb Ackerman, Meg McCarty and myself) got together to do some coding based on the principles. As was only to be expected, it took us most of the time just assimilating the principles and looking at how they applied to the existing core templates in Snowflake. We didn’t get to a point where it was workable to bring in remote players, so it remained local. I was sorry about that, but there has been a suggestion we do it again next Wednesday afternoon (before our Joomla users group meeting).
The views we looked at most closely were the Content-Articles (default & edit), Content-Category Blog, Content-Category List. For the most part, we had few changes to make.
The files had 2 container divs, the outer with class “joomla”, a space, then the pageclass suffix, the inner with a class of the view (i.e. “article” or “cat-bg”). We consolidated that to one div and dropped the joomla class and the space before the pageclass suffix. We thought that if people needed to know it was Joomla then they could add the div in the template. We like the idea of the pageclass being a separate class (with the space), but the same thing can be accomplished by starting the pageclass suffix with a space and that allows you to also use pageclass suffix as a true suffix if you need to.
We also changed the class “headliner” to “titleblock” because that seemed a clearer indication of what it was.
We changed the class “postmeta” to “iteminfo” again, for clarity.
On the Category List we added thead/tbody and removed the align & width style attributes and put in individual classes instead so that could be done in CSS instead of in the HTML. *** Implications *** To do this properly semantically we need to give each of the table columns a different class so the widths can be individually done in CSS. That adds a lot of classes to the CSS. It also has implications for 3 rd party developers because they would need to had new classes with CSS that might not be in the regular template. Another option would be to assign classes of width-5, width-10, width-20, width-25, width-40, width-45, width-50, width-60, width-100 which could be preset up in the CSS allowing the 3PD extensions to slip in easily. Comments?
We added scope to the table.
We added a header for the filters and labels to the filters.
On Amy’s suggestion I’ve created sample wireframes for two of the screens (Article and Category Blog) which show the structure & class/id. I’ll add those .png files to the files at the end of the discussion list.
The new forms engine still has to be implemented. We didn’t try to tackle that.
*** Nested Category behavior questions ***
The old section code was still in place. We didn’t attempt to change it because we weren’t sure how the behavior should work. With a Section/Category you had limited options. Show the whole section or show only a specific category.
With nested categories what do you do about grandchildren? Can you attach articles to all levels of categories or only the bottom most level?
What if a category has both articles and sub categories?
I like the idea of switching to the beez method of creating the
columns. It gives you styling options that the other method doesn't.
Is there anyone out there that would have a problem if we made that
change?
Along the same lines, are there any specific suggestions, for or
against, on the class name changes that we did?
Sometimes it's necessary to float some of the colums left , and one right, so you can override the float class with the columncount.Designers sometimes like to style the first row in another way than the second one , so we need the possibility to do that.So I would suggest to count the columns and add the class in the same way like the colcount.
<tr class="<?php if ($item->odd) { echo 'even'; } else { echo 'odd'; } ?>">
In your wireframe I couldn't find the seperator .
We can clear floats, if we choose overflow : hidden for the standardconform browsers and display: inline-block for the IE6.The inline-block is sometimes buggy , so we should discuss if we should add seperator divs to clear the floats.My opinion about the class names is to find a good way between the old class names and new names which explain the meaning.
----- Original Message -----
No virus found in this incoming message.
Checked by AVG - www.avg.com
Version: 8.5.339 / Virus Database: 270.12.63/2169 - Release Date: 06/11/09 05:53:00
Duke, could you look at the new version I put up and see if that will cover your concerns?
Thanks!
Andy
Angie,
I got a little lost in the discussion of columns and rows. Can you look at the new diagrams and see if they look ok? In the blog layout we now have the column class and the total number of classes along with the separators. Should we have row information as well, or is that just needed on the Category list table?
From: joomla-...@googlegroups.com [mailto:joomla-...@googlegroups.com] On Behalf Of Amy Stephen
Sent: Friday, June 12, 2009 7:38
PM
To: joomla-...@googlegroups.com
Version: 8.5.339 / Virus Database: 270.12.65/2171 - Release Date: 06/12/09 05:55:00
Hi Amy -Perhaps I wasn't clear. I prefer to use a grid system, but my point was to try to avoid having any of the usual grid-like classes in the default markup or anything suggesting widths. So, I was specifically discouraging use of .width-40 or .span-12 as these do suggest a grid and result in non-semantic class names suggesting dimensions into the html.
Instead, I was suggesting simply numbering the columns as they are rendered - .C01, .C02, .C03 or .Col01, .Col02, Col03, .Col04. Combined with a class suffix for the table, it allows as generic or as granular of CSS selectors as are needed by the end designer. No suggestion of display width in the HTML. It is the most accessible generic naming convention we could use without making it content-specific. It's also considered an appropriate technique for WCAG/508 compliance.
In the CSS, these selectors can be left unset and allowed to auto-fit the content, be hand sized, or a grid system could be applied.As for rows, even-odd is fine; but columns usually need column-specific styling to match the content.Is this making sense?
Also, came across this a couple weeks ago and it seems to work perfectly ...Minimizes HTTP requests, still works when JS is unavailable, works well with Blueprint on Sass.What do you think?
Version: 8.5.339 / Virus Database: 270.12.66/2172 - Release Date: 06/12/09 17:56:00
It’s not an editable png file. I created it using a free collaborative wireframing web service called gliffy.com. I’ll post them as .svg files which can be edited in Adobe Illustrator. I could also set up people as collaborators on the gliffy site.
<BR
Will the .svg file work for you? If so, I just added them to the files on the google groups site.
<BR
Version: 8.5.339 / Virus Database: 270.12.67/2173 - Release Date: 06/13/09 05:53:00
To sign on as a collaborator, I need to give your email address to gliffy.com who will email you with instructions on how to set up a free account. They set you up as a 30 day trial for the premium account which will automatically convert to a basic account at expiration. It’s a bit clumsy, but seems to work ok. I actually think it would have been quicker and easier in Photoshop J If anyone knows of better software out there, let me know, especially if it could legibly create it automatically.
So let me know if you are ok with me using your email. Otherwise, you can just use the .svg files.
Andy