Well, it’s a work in progress. After removing some bugs that people have found, plus the ones I already knew were there, I think it’s ready for prime time.
Feel free to try it out (If you want to look at and mess with the code in one of the children of unix, try this one).
My code is built on Seung Chan Lim’s category modification of the Greymatter scripts. Seung built on the GM version 1.21b and this was where I also forked from GM a couple years ago.
I haven’t really changed or added any functionality. All I’ve really done and the goals I am try to reach are:
- Stripped out all presentational HTML (layout tables, FONT, widths, borders and such frippery.) of the admin forms. This had the benefit of knocking nearly 50KB off gm.cgi.
- Stripped out all inline CSS and CSS class references as a prelude to a global stylesheet, now labeled “grey01.css.” This will aid “skinning” as well reduce non-perl noise in the scripts.
- Tried as hard as possible to make all the markup generated by the admin forms to hew as close as possible to XHTML 1 strict, but this still won’t be perfect as certain attributes (namely wrap=”virtual” which is deprecated.) are needed by GM. This is still a work in progress.
- I ran all the code through the perltidy utility. Hopefully this will help others build and improve on what I’ve wrote.
- Attempted to add markup (LABEL, ACCESSKEY, FIELDSET, AXIS, etc.) to aid Greymatter’s accessibility. Greymatter is actually mostly accessible to people with screen reading software already. Noah did a great job of explaining what each field and checkbox is for in the form itself and these good usability practices are great to build accessibility with. The stuff I am adding is icing on the cake. See the WAI authoring tool guidelines for more. All that is really needed is keyboard shortcuts to allow people to jump quickly through the forms and to have all form elements clearly labeled.
In the process meeting goals 1 through 5, I’ve made extensive but small changes all over Noah’s scripts. But I really haven’t made any real changes in the functionality of the scripts.