The GNU/FSF Web Site Guidelines
[
English
| Korean
]
These are style guidelines for writing WWW web pages in HTML for the
GNU/FSF web server.
The standards documented here are the default for the GNU project and
FSF websites. All pages should appear this way by default. However, if
you want to design alternative pages that differ from these guidelines,
it's ok to do so as long as those features are supported by some Free
Software web browsers.
However, when new features are used, they should be used in a consistent
way, and standards should be developed for how we use them. Please
contact the other maintainers of www.gnu.org pages that use similar
features, and discuss with them new standards for using these features,
so we can note those new standards here.
Talk with <webmasters@gnu.org> if you are having trouble finding
other web page authors using the features you are interested in.
Please note, however, that regardless, frames should not be used, even in
the alternative pages, because they interfere with bookmarking. But if
you think you know of a good reason to use frames, please tell us about
it.
Table of Contents
- Every 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.,
51 Franklin St, Fifth Floor, Boston, MA 02110, 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.,
51 Franklin St, Fifth Floor, Boston, MA 02110, USA
The reason to note this at the bottom
is so the user finds the copyright information
at the same place on each page.
- All pages should have a notice saying that they are freely distributable.
If you can not get such a permission from the author, please discuss
this with the webmasters first.
- Remember, it's GNU to have fun along the way!
- Good spelling is encouraged. Use the GNU Emacs ispell-mode if in doubt.
- The FSF will install only
free software
on the GNU/FSF web server.
We prefer that only
free software
be used to develop content for the GNU/FSF web server.
- The GNU/FSF web server only lists and links
only to
free software.
The software's source code and executables
have to be freely redistributable and modifiable to and by all people,
companies, and organizations.
If in doubt, ask
<gnu@gnu.org>.
- The GNU/FSF web server gives priority to software covered by either
the GNU General Public License or GNU Lesser General Public License,
which is always listed first.
- The GNU/FSF web server is interested first in content.
Substance is more important than style.
The use of graphics should be minimized, so pages load fast over
slow links.
The GNU Project is for everyone, even those with slow
Internet access and/or text-only WWW browsers.
- Often a page will start off with some links, then have the GNU/FSF text.
The goal is to get each user quickly to what they want to find out,
having most of the info on the first screen.
This is similar to having the start of a Menu within the
first 24 lines of an Info page.
- Offer a document in as many formats as the GNU Project has it.
For an example, see
The GNU Free Documentation License.
This lets the user get the document in the format most useful to him.
- Before you take any graphics or text from another Web site,
please ask for permission to use it.
It's polite to do so. It is also essential for us to
avoid copyright infringement.
- Do not list an address of an individual,
especially the maintainer of a GNU package,
unless the maintainer has explicitly asked to have it listed.
Most GNU maintainers do not want a lot of extra mail and
prefer to get bug reports, etc. from the GNU bug report
mailing lists (50k characters).
- Hand-written URLs which refer to other files
should be absolute, starting from the root page.
That is, file names should start with "/"
(e.g. "/order/order.html",
but not "http://www.gnu.org/").
This makes it easier to copy and paste
"<a href="s from other pages,
and also makes it easier to set up mirror servers.
- However, it is ok to omit the file name entirely
when referring to a tag in the same file.
- When the link points to another page on the GNU/FSF server,
omit the word "http:" at the beginning.
In other words, use "http:" only before a host name.
- Collections of files produced automatically from Texinfo source
contain links with relative file names. They always refer
to another file in the same directory. These links are ok.
- To make it easier to edit many files at once in Emacs:
- Try and give each html file a unique name.
- The filename index.html should only be used as a symbolic link.
- Each directory, in the web server tree,
should have an index.html symbolic link to the top-level
html file for that directory. Use the
.symlinks
file to
handle this.
- Don't use just a directory name in a URL; always include the
specific file name.
E.g. use "/gnu/gnu-history.html" not just "/gnu/".
And never use "index.html" in a URL.
Both of these are kindnesses to the users,
as browsers change the highlighting on a link,
if a user has already seen it.
If the link is known by several different file names,
the user will not get a highlighted link on the file names the user
hasn't explicitly referenced.
So the user goes to pages the user has already seen,
which is irritating.
- Keep the HTML simple. 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. Though we
generally use XHTML 1.0 Strict, with content type text/html.
XHTML Transitional is good enough; HTML 4.01 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.
- Regarding character encoding, in general, the
use of 8 bit unicode makes life easy on our translators, so
xhtml with utf-8 is preferred as a general rule. When using
html 4.01, please keep in mind the W3C recommendation
and the appropriate character set respective to the language
in question.
We support the Best
Viewed with Any Browser campaign.
- When using some new HTML construct, 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
- links
- GNU Emacs' w3-mode
- Mozilla
- Arena
- Hot Java
- Mosaic 2 and 2.75b
- Netscape 3, 4, and 5
- Internet Explorer, including the AOL web browser, which is a
special version of Internet Explorer (around 10 million users
have AOL web browser as their only browser)
Of course, please don't install any of the proprietary software
browsers mentioned above if you don't already use them anyway.
- All pages should have
<html> <head> <title> <body>
pairs when using HTML, and the appropriate DTD reference
(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, <h[n]>, 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.
It 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@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).
- Cite people with e-mail addresses this way:
<a href="http://www.stallman.org/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, if this is supported
by the client.
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
browser.
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="http://ftp.gnu.org/gnu/GNUinfo/standards.info">http://ftp.gnu.org/gnu/GNUinfo/standards.info</a>
which browsers display this way:
http://ftp.gnu.org/gnu/GNUinfo/standards.info
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
http://ftp.gnu.org/gnu/GNUinfo/standards.info 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 -- it still won't
look right.
- 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 override 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.
However, this is normally done in CSS when using
HTML 4 and XHTML, and is required with Strict and 1.1.
Please see /gnu.css for details.
- It is okay to use tables if you know what you are doing. Tables take
significant time to render using some browsers, so they should be
small enough so that this is not a problem. 50 lines is probably
a nice arbitrary limit for such tables.
- Some people like to use tables to make the impression of a menu to
the left or right of a text when using graphical browsers. That does
not work very well with text browsers since they will make the menu
appear either on top of the page or at the bottom. If you have a menu
that is more than 30 lines long, then it's very probable that a user
viewing the page will never bother to read the text because it will
be too far down. You should make an effort to keep such menus under
20 lines long so that the content of the page is visible on the
first page when viewing it with a text browser.
A menu bar of one or two lines might accomplish your purpose as well.
Please see the navigation bar guidelines below.
- Screen reader software used by most blind people read the text from
left to right, ignoring any tables that you make. If you use tables,
you should make an effort to make sure that reading a whole page left
to right doesn't screw up such software.
If you wish to add the front page navigation row (or a bar with
your own links), there are two ways you can go about it: you can
create a table row that places the links at the right or left of
the page, or you can use CSS. The /gnu.css file defaults to the
right for the CSS. Please keep the following things in mind:
- For CSS use class "linkbar"
- For tables, all the guidelines above still apply (the size
of the table, the amount of lines for the link).
- Unless the links are not very long (ie under 20 lines or so),
keep the links so that they will display at the bottom in text
browsers.
- CSS will be a little more complicated. Where you place the
links is where a browser without CSS support will display the
bar. Please use the same considerations here as with tables. If
you need to modify the css, be careful that you don't affect
other pages that use it.
Return to GNU's home page.
FSF & GNU inquiries & questions to
gnu@gnu.org.
Other ways to contact the FSF.
Comments on these web pages to
webmasters@www.gnu.org,
send other questions to
gnu@gnu.org.
Copyright (C) 1996, 1997, 1998, 1999, 2001, 2004 Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110, USA
Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved.
Updated:
$Date: 2005/05/05 19:37:19 $ $Author: novalis $
Lord of the Rings Fantasy
MSN