These are style guidelines for designing web sites and writing WWW web
pages in HTML that I developed while working on the
GNU Project web site.
- Carefully consider if a page should have a Copyright notice.
- The default is what's at the bottom of
boilerplate.html.
- If the page is copyrighted by someone else,
make sure their Copyright notice is on the page.
Replace the default FSF Copyright notice at
the bottom of the page with this:
Copyright notice above.
Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111, USA
The reason to note this at the bottom
is so the user finds the copyright information
at the same place on each page.
- If the source text for a set of pages is copyrighted by someone else,
(i.e. you split a document into more than one page)
make sure their Copyright notice is at the bottom of each page,
where the default FSF Copyright notice would otherwise be.
On the page containing their Copyright notice,
you can replace the default FSF Copyright notice at
the bottom of the page with this:
Copyright notice above.
Free Software Foundation, Inc.,
59 Temple Place - Suite 330, Boston, MA 02111, USA
The reason to note this at the bottom
is so the user finds the copyright information
at the same place on each page.
- Keep the HTML simple.
The more complex the HTML, the more limited the access, as it
will not format properly in many browsers.
Our goal is to get information to people.
Keeping the HTML and site design simple helps accomplish that.
- HTML on the GNU/FSF web server should be conservative.
HTML
2.0 (147k characters)
is good enough. HTML 1.0 is acceptable.
We don't want to experiment with the latest features of any
browser on the GNU/FSF web server.
It is important that the pages on the GNU/FSF web server, display well
on all browsers that implement no more than HTML 2.0.
We support the Best
Viewed with Any Browser campaign.
- Check pages after you change them with tools like htmlchek
(installed in
/usr/local/bin
on
www.gnu.org), and weblint.
This will catch errors that will confuse users, before they are seen.
- Test view pages under many browsers,
both text-only and full graphics,
and older versions of each browser as well.
This helps make sure the pages present well under all browsers,
and prevent HTML design that looks great under one version of
one browser, and ugly under many others.
For example, test view under:
- Lynx
- GNU Emacs' w3-mode
- Arena
- Hot Java
- Mosaic 2 and 2.75b
- Netscape 3, 4, and 5
- Internet Explorer
- the AOL web browser
(around 10 million users have it as their only browser)
- All pages should have
<HTML> <HEAD> <TITLE> <BODY>
pairs (see file boilerplate.html).
This makes up for overly pedantic browsers.
- All pages should have contact info for both the FSF (or
responsible party) and the webmasters at the bottom of each page.
The default is what's at the bottom of
boilerplate.html.
The reason to note this at the bottom
is so the user always finds this contact information
at the same place on each page.
- The first header tag, <Hn>, should have its text duplicated
at the start of the <TITLE> tag.
The <TITLE> tag is used by many browsers in menus like the
history and bookmarks lists, as a link to that page.
Its helps the user to have them the same, so when he clicks on an
item in a list, he gets a page with the same "title".
- The <TITLE> tag should include the phrases
"GNU Project" and "Free Software Foundation (FSF)"
so the pages will be found when WWW search engines are used.
The default is to add this at the end:
" - GNU Project - Free Software Foundation (FSF)".
- The <HEAD> pair should have this line after the <TITLE>
pair:
<LINK REV="made" HREF="mailto:webmasters@www.gnu.org">
Some browsers use this information to allow users to easily report
problems they find on a page.
- On pages with dated entries (e.g. What's New, Thank GNUs, and
GNU's Bulletins, the newer entries should be first (i.e
reverse chronological order).
- If a link is to a page with more than 10,000 characters on it,
warn the reader of this fact by listing the size at the end of the link.
For example:
<A HREF="my-html-style-sheet.html">style guidelines (12k characters)</A>
This is so the user is warned that the transfer will take a
longer than expected time.
It might be a good little hack to generate the size using
Roxen's
embedded language, so they are always correct.
- Cite people with e-mail addresses this way:
<A HREF="http://www.gnu.org/people/rms.html">Richard Stallman</A>
<A HREF="mailto:rms@gnu.org"><rms@gnu.org></A>
which browsers display this way:
Richard Stallman
<rms@gnu.org>
It is less confusing to the user, because it's clear what
is a http: link to another WWW page and what is a mailto: anchor that
will bring up a mail form to fill out and send.
Also, if the user saves a copy of the page, he will have a copy
of the e-mail address he can use, without going back to his web
broswer.
If the person doesn't have a web page, use:
Richard Stallman
<A HREF="mailto:rms@gnu.org"><rms@gnu.org></A>
which browsers display this way:
Richard Stallman
<rms@gnu.org>
- Cite FTP locations of source code with the full URL of the
directory they are in:
<A HREF="ftp://ftp.gnu.org/pub/gnu/standards/">ftp://ftp.gnu.org/pub/gnu/standards/</A>
which browsers display this way:
ftp://ftp.gnu.org/pub/gnu/standards/
It is less confusing to the user, because it's clear that it's
source code to download, not a http: link to another WWW page.
Also, if the user saves a copy of the page, he will have a copy
of the FTP location he can use, without going back to his web
broswer.
We encourage FTP sites to use a directory for each package,
and only put one package's files in each directory,
so that the users can see what versions of that package and related
information can be downloaded (e.g. a ReadMe file,
information of what versions are available, documentations, fonts, etc.).
Also, it means that the FTP location URLs do not need to be changed,
on this and other sites,
as new versions are released into that directory.
Here is an example:
You can download the sources for the
GNU Coding Standards
from directory
ftp://ftp.gnu.org/pub/gnu/standards/ or from a
GNU FTP Mirror Site.
- There is no reliable way to make a non-breaking space in HTML.
Despite the standard, many browsers out there don't understand
. Some browsers (such as DosLynx) use the
Operating System current codepage so even if you use
  -- the ISO Latin-1 code -- if still won't
look right.
- Some browsers can only change the foreground color, while others
can only change the background.
So leave the foreground black, but specify it as black (see below).
If you want to use different colors, alter only the background
color. This is especially important if you are using tables
(but as tables are not HTML 2.0, and produce confusing,
hard to understand pages under many browsers,
it's best to stay away from them).
- If you specify any color attribute, you should specify all of
them that are allowed for that tag.
This is because some browsers allow users to specify defaults for
the color attributes, and the user's choices could conflict with
your choices, as your choices overrides the user's choices.
In the worse case, the foreground and background could end up the same.
For example, for the <BODY tag specify all these
attributes:
BGCOLOR,
TEXT,
LINK,
ALINK,
and
VLINK.