Translations of this page.
The GNU/FSF Web Site Guidelines
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 all right 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 <firstname.lastname@example.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
If the page is copyrighted by someone else, make sure their
Copyright notice replaces the FSF Copyright, but maintains the address,
etc. The user of our pages should always find 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.
- 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.
- Good spelling is encouraged.
- The FSF will install only
on the GNU web server. We prefer that only
be used to develop content for the GNU web server.
- The GNU web server only lists and links
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
- The GNU 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 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 or text-only
- Often a page will start off with some links, then have the GNU 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, including the
maintainer of a GNU package, unless 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",
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.
- 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 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 relative links are to
- 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
- 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
- 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/". 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. Also, this helps
- Our goal is to get information to people.
Keeping the site design simple helps accomplish that.
- HTML on the GNU web server should be strictly compliant with W3C
and ISO standards. Though we generally use XHTML 1.0 Strict, with
content type text/html, we prefer ISO 15445 or HTML 4.01 Strict.
We don't want to experiment with non-standard browser features.
Though XML and XHTML are important, when they are used they need
to follow both accessibility standards, and the guidelines for HTML
compatibility. Please be meticulously careful to make our documents
accessible. For example, XHTML normally uses MIME type xhtml+xml
which many browsers do not recognize, (it is understand that this
will be implimented with IE 7, though the question still stands
regarding the breadth of IE's XHTML support; lynx added support for
xhtml+xml with 2.8.6dev.5, and text/xml and application/xml with
2.8.6dev.11). Also, even though the HTML compatibility guidelines
assist with backwards compatibility to some browsers (such as MS
IE), they will be interpreted incorrectly by strict HTML and SGML
parsers. It is important that the pages on the GNU web server,
display well on all browsers, even those that implement
no more than HTML 2.0. Using HTML 2.0 is fine; we'd prefer
you didn't use HTML 3.2. ISO HTML is best for most situations.
Use XHTML to benefit the use of XML and XHTML modularity.
- Two boilerplates are provided, the primary
and a XHTML
boilerplate. When in doubt use the primary
boilerplate, as you will know when you need or want XHTML.
- Regarding character encoding, in general, the use of 8
bit unicode makes life easy on our translators, so when using
XHTML, UTF-8 is preferred as a general rule. When using HTML
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, and WAI.
- Please be considerate of all who access our web pages, and
accomodate them, including those who use text-only browsers,
or old browsers. We wish to prevent HTML design that looks great
under one version of one browser, and ugly under many others.
Of course, please don't install any of the proprietary software
browsers available if you don't already use them anyway.
- Please follow the above mentioned web standards strictly.
required elements such as <HTML> <HEAD>
<TITLE> <BODY>, etc. when using (X)HTML, and always
include the appropriate DTD or Schema reference. 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 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". Please properly use your headers in numerical
order: 1, 2, etc. These are not used for looks, but for
the organization of the document.
- 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>
<LINK rev="made" href="mailto:email@example.com">
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>
which browsers display this way:
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, leave the
- Cite FTP locations of source code with the full URL of the
directory they are in:
which browsers display this way:
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
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
- 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
- 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. Please use a style sheet for this, and not HTML 3.2
(HTML 4 Transitional) deprecated markup.
- Please use tables to organize data, not the presentation of the
- Some people like to use tables to organize links as a menu to
the left or right of content 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 horizontal lines might accomplish your
purpose as well.
- Consider others linking to your page when removing page
anchors. Also, though ID is prefered, include name, so as
to be backwards compatible with older browsers. Please use
/gnu.css for your stylesheet, unless you have a specific reason
to do otherwise. Please do not break the style of other pages
that use gnu.css.
- Screen reader software used by most blind people reads 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 confuse such software. Please follow the
WAI compatibility guidelines to ensure that tables are
properly marked for accessibility.
- SGML and XML are case sensitive. TITLE and title are not the same
thing in HTML. (This means that text/html and application/xhtml+xml
are mutually exclusive, which also means that strictly speaking XHTML
and HTML are mutually exclusive.)
- Do not add comments at the top of a document. Web
browsers expect the doctype, XML declaration, or Schema to be
at the top. Comments will confuse web browsers, and often
cause them to incorrectly interpret your markup.
The use of graphics should be minimized, so pages load fast over slow
links, especially animations. The GNU Project is for everyone, even
those with slow Internet access and/or text-only WWW browsers.
In the past, GIFs have had patent problems. However, now that the IBM
and Unisys patents (and other patents world-wide that are relevant
to LZW compression), GIFs that are based on the 87a or 89a standard
are acceptable. Please be wary of proprietary applications that may
include non-standard patented technologies (we'd prefer you use free
software applications when authoring for our websites). In general,
PNG or JPEG format, are still safe, and are probably better from a
technical standpoint. For details regarding the old GIF problem, see
Other formats are also allowed, though JPEG is the one most widely
recognized by Web browsers, (be careful with JPEG 2000, as well as
PNG alpha channels, as it includes features not fully supported by
- 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.
- Whenever you add a graphic to this site's web pages, please:
- locate the graphic file in the '/graphics/'
- create a new html web page in
- add a link to it on the
GNU graphics page.
This is so it's easy for visitors to the site to find all
the graphics on the site in one place.
- Tag all images like this:
This will allow the user to quickly go to a page related to
the picture if he or she is interested.
- Always have a textual
alternative for in-line images:
<img src="/graphics/*.jpg" alt=" [Image of DESCRIPTIVE TEXT]
The FSF wants users who have text-only access to the Web to be
treated as well as those who have both text and graphic access.
We add the spaces and square brackets to separate the DESCRIPTIVE
TEXT from adjacent text, and help the user realize that this is
a stand-in for a graphic.
- Use width and height attributes for in-line images, but not in
alt=" [Image of DESCRIPTIVE TEXT] " width="999" height="666"
This improves the performance of, and display on, some
- We do not use
backgrounds on our pages, as they make text significantly harder
to read. Improving readability is also the reason we specify
black text on a white background as the default on our pages.
- Sometimes it can be useful to add some HTML tags, for example with
<SPAN> and CSS, that gives
a broader "white" area around a block of text. This can be used
to draw more attention to one block in the text.
Return to the GNU Project home page.
Please send FSF & GNU inquiries to
There are also other ways to
contact the FSF.
Please send broken links and other corrections (or suggestions)
Please see the
README for information on coordinating and submitting
translations of this article.
Copyright © 1996, 1997, 1998, 1999, 2001, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110, USA
Verbatim copying and distribution of this entire article are
permitted worldwide, without royalty, in any medium, provided
this notice, and the copyright notice, are preserved.
$Date: 2006/10/05 04:58:26 $ $Author: sinuhe $
of this page: