The GNU/FSF Web Site Guidelines
These are style guidelines for writing WWW web pages in HTML for
the GNU web server.
The standards documented here are the default for the GNU
project website. All pages should appear this way by
- Every page should have a copyright notice. See the boilerplate
document linked below.
- 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 GNU web server has only free
software available. We prefer that only free software be used to
develop content for the GNU web server.
- The GNU web server list an links
only to free software. The software's source code and
executables have to be freely redistributable and modifiable to and by
all people and organizations. If in doubt, ask <email@example.com>.
- The GNU web server gives priority to software covered by either
the GNU General Public License or GNU Lesser General Public
- 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 browsers.
- 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.
Filename and URL Guidelines
- Hand-written URLs which refer to other files should be
absolute, starting from the root page. That is, file names should start
http://www.gnu.org/). This makes it easier to
copy and paste links from other pages. Links like
http://www.gnu.org/ will be wrong when the visitor uses
- Be sure to omit the file name entirely when referring to a tag
in the same file.
- 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 be
- 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, as
- Each directory in the web server tree should have an
symbolic link named
index.html to the top-level HTML file
for that directory. Use the
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/". 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 mirroring.
- If you translate your web pages in different
languages, please use
article.html name for the English
article.LANG.html for the
translations. LANG should contain two-letter language code
639 and optional hyphen with two-letter country code given in ISO
3166. For example, the German translation of
should be named
not-ipr.de.html; the Brazilian Portuguese
translation should be named
- 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
- 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) have expired, 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 http://www.gnu.org/philosophy/gif.html.
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 older
- 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:
- install the graphic file in the '/graphics/' subdirectory.
- create a new html web page in '/graphics/'
- 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
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
<img src="/graphics/*.jpg" 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.