<?xml version="1.0" encoding="US-ASCII"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC7322 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7322.xml">
<!ENTITY RFC7841 SYSTEM "http://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7841.xml">
]>

<rfc submissionType="IAB" consensus="yes" ipr="trust200902" number="7993" category="info">

<?rfc toc="yes"?>
<?rfc tocdepth="4"?>
<?rfc sortrefs="no"?>
<?rfc symrefs="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>

  <front>
    <title abbrev="CSS Reqs for RFCs">Cascading Style Sheets (CSS) Requirements for RFCs</title>

    <author initials="H." surname="Flanagan" fullname="Heather Flanagan">
      <organization>RFC Editor</organization>
      <address>
        <email>rse@rfc-editor.org</email>
        <uri>http://orcid.org/0000-0002-2647-2220</uri> 
      </address>
    </author>

    <date year="2016" month="December"/>
    
    <area>General</area>

    <workgroup>Internet Architecture Board</workgroup>

<keyword>Format</keyword>

    <abstract>
<t>The HTML format for RFCs assigns style guidance to a Cascading Style Sheet
(CSS) specifically defined for the RFC Series.  The embedded, default CSS as
included by the RFC Editor is expected to take into account accessibility
needs and to be built along a responsive design model.  This document
describes the requirements for the default CSS used by the RFC Editor. The
class names are based on the classes defined in "HTML for RFCs" (RFC 7992). </t>  
    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>The HTML format for RFCs, described in <xref target="RFC7992"/>, assigns
style guidance to a Cascading Style Sheet (CSS) specifically defined for the
RFC Series.  This CSS will be embedded in the published HTML, and it may be
overridden by a locally defined CSS, as desired.  The embedded, default CSS as
included by the RFC Editor is expected to take into account accessibility
needs and to be built along a responsive design model.</t> 

<t>This document describes the requirements for the default CSS used by the
RFC Editor. Unless called out otherwise, any styling provided for these
classes must not alter the natural language content in any visible way.  Many
of these classes are provided to mark the elements semantically: elements
using them should simply inherit their surrounding styling. Exceptions are
listed below. A class is identified for Internet-Drafts, such that certain
features found only in I-Ds may be made distinct in some fashion within those
drafts.  The requirements will only be applied to HTML documents published by
the RFC Editor as per <xref target="RFC7990"/>.</t> 

<t>The details included in this document are expected to change based on
experience gained in implementing the new publication toolsets. 
Revised documents will be published capturing those changes as the toolsets are
completed. Other implementers must not expect those changes to remain
backwards compatible with the details included in this document.</t> 

</section>
<section anchor="design-goals" title="Design Goal">

<t>RFCs must be adaptable to a wide variety of devices and displays, accessible to assisted readers, and printable.</t>

</section>
<section anchor="general-requirements" title="General Requirements">

<t><list style='symbols'>
  <t>Support the display of the semantic HTML described in <xref target="RFC7992"/>.</t>
  <t>Follow best practice for accessibility, as defined by the W3C's "Best Practices for Authoring HTML" <xref target="HTMLBP"/>.</t>
  <t>Follow best practice for mobile devices, as defined by the W3C's "Best Practices for Authoring HTML".</t>
  <t>Allow for a broad range of internationalized scripts.</t>
</list></t>

</section>
<section anchor="page-layout" title="Page Layout">

<section anchor="title-page-header" title="Title Page Header">

<t>The document header must be at the top of the document and include all information described in "RFC Style Guide" <xref target="RFC7322"/> and "RFC Streams, Headers, and Boilerplates" <xref target="RFC7841"/>.</t>

</section>
<section anchor="body" title="Body">

<t>The body of the document must conform to the following:</t>

<t><list style='symbols'>
  <t>Examples and code blocks must be in a fixed-width font</t>
  <t>ASCII art must be in a fixed-width font</t>
  <t>Reflow the text as the screen gets smaller and limit max width </t>
  <t>Block quotes must be indented </t>
  <t>Tables must allow for distinct header rows</t>
  <t>Paragraphs should include a hover-over paragraph identifier</t>
</list></t>
  <t>All anchor tags and URLs should be clearly distinguished as links, for example, through the use of color and/or text decoration, following appropriate accessibility standards.</t>

</section>
<section anchor="font-choices" title="Font Choices">

<t><list style='symbols'>
  <t>Default to a sans-serif font family with broad Unicode support for web browser viewing.</t>
  <t>Default to a serif font family with broad Unicode support for printing.</t>
  <t>A fixed-width font must be used for code and artwork-tagged sections.</t>
  <t>All fonts should be publicly licensed and supported by all major web browsers.</t>
</list></t>

</section>
</section>
<section anchor="printing" title="Printing">

<t>The CSS must include support for a printer-friendly output.  The print rules should be a part of the embedded style sheet; consumers of an RFC may develop their own print-specific style sheet, as desired.</t>

</section>
<section anchor="lists" title="Lists">
  <t>Lists should provide ample whitespace between list elements for legibility unless a 'compact' class is specified (e.g., .dlCompact, .ulCompact, .olCompact).</t>
</section>

<section anchor="css-classes" title="CSS Classes and Attributes">
<t>This section describes the CSS classes that result in specific changes to the natural language content of a document. A full list of available classes, not including basic selectors, is included in Appendix A.</t>

  <section anchor="alignCenter" title=".alignCenter">
   <t>To be used with '.artwork' to indicate the figure should align in the center of the page flow.</t>
  </section>

  <section anchor="alignRight" title=".alignRight">
   <t>To be used with '.artwork' to indicate the figure should align on the right of the page flow.</t>
  </section>

  <section anchor="artwork" title=".artwork">
  <t>These classes will mostly be styled as part of '.artwork'.  Specific
  classes may include '.art-ascii-art' and '.art-svg'. Artwork will be held 
  in its own block of space, centered in the page flow, and will not float. 
  Images should have a max width of 100% so views will scale properly across
  a variety of screens and devices.</t>

    <section anchor="art-ascii-art" title=".art-ascii-art">
    <t>Must use a mono-spaced font.</t>
    </section>

    <section anchor="art-logo" title=".art-logo">
    <t>No visible changes to the natural language content; keep in default style. Note that such images are not currently allowed in RFCs.</t>
    </section>
  </section>


  <section anchor="cref" title=".cref">
    <t>A comment within an I-D; should be visually distinct.</t>
    <t>For I-Ds only; not for RFCs.</t>
  </section>

  <section anchor="crefAnchor" title=".crefAnchor">
    <t>A comment within an I-D; should be visually distinct.</t>
    <t>For I-Ds only; not for RFCs.</t>
  </section>

  <section anchor="crefSource" title=".crefSource">
    <t>A comment within an I-D; should be visually distinct.</t>
    <t>For I-Ds only; not for RFCs.</t>
  </section>

  <section anchor="dlCompact" title=".dlCompact">
    <t>Use less spacing on a definition list than the default.</t>
  </section>

  <section anchor="dlHanging" title=".dlHanging">
    <t>Use the standard hanging indent for a definition list; indent terms.</t>
  </section>

  <section anchor="dlParallel" title=".dlParallel">
    <t>Do not use the standard hanging indent for a definition list; align terms and definitions along left side.</t>
  </section>

  <section anchor="docInfo" title=".docInfo">
    <t>Hide from visible content.</t>
  </section>

  <section anchor="eref" title=".eref">
    <t>Standard link formatting (underlined, change in color).</t>
  </section>

  <section anchor="finalized" title=".finalized">
    <t>Hide from visible content.</t>
  </section>

  <section anchor="note" title=".note"> 
    <t>Notes should be emphasized and distinct from normal paragraph text.
    </t>
    <section anchor="rfcEditorRemove" title=".rfcEditorRemove">
      <t>An RFC Editor note may be added after the standard boilerplate. It should be visually distinct to highlight final removal of the note by the RFC Editor.</t>
    </section>
  </section>

  <section anchor="olCompact" title=".olCompact">
    <t>Use less spacing on a numbered list than the default.</t>
  </section>

  <section anchor="olPercent" title=".olPercent">
    <t>If the style attribute from the source XML contains a percent sign, 
       a particular style setting will be required to make this setting 
       behave like an HTML ordered list.</t>
  </section>

  <section anchor="pilcrow" title=".pilcrow">
    <t>Pilcrows, when used as described in RFC 7992, should 
       appear at the end of the paragraph, artwork, or sourcecode segment. 
       They should not appear until moused-over. They should not show when 
       printed, and they should not be selected when copied with a copy/paste 
       function.</t>
  </section>

  <section anchor="relref" title=".relref">
    <t>Should be clearly distinguished as links.</t>
  </section>

  <section anchor="rendered" title=".rendered">
    <t>Hide from visible content.</t>
  </section>

  <section anchor="sourcecode" title=".sourcecode">
    <t>Code examples or components should be in a fixed-width font if the 
       human language used has an available fixed-width font option, and they
       should be visually distinct. If no fixed-width font is available, 
       use the default font for that human language.</t>
  </section>

  <section anchor="toc" title=".toc">
    <t>The table of contents should be clearly distinguished using an indented, ordered list with the list style set to 'none', allowing for hyperlinked, in-line dotted number notation (e.g., 1., 1.1., 1.1.1.).</t>
  </section>

  <section anchor="type" title=".type">
    <t>No visible changes to the natural language content; keep in default style.</t>
  </section>

  <section anchor="ulCompact" title=".ulCompact">
    <t>Use less spacing on a bulleted list than the default.</t>
  </section>

  <section anchor="ulEmpty" title=".ulEmpty">
    <t>Indent from the margin of the previous paragraph.</t>
  </section>

  <section anchor="url" title=".url">
    <t>Should be clearly distinguished as links.</t>
  </section>

  <section anchor="xref" title=".xref">
    <t>Should be clearly distinguished as links.</t>
  </section>

</section>


<section anchor="security-considerations" title="Security Considerations">

<t>
Security vulnerabilities can be introduced through the CSS, as with CSS
injection attacks <xref target="CSSATTACK" />.  In order to avoid or mitigate any attack
vectors here, the CSS used must comply with the current CSS Specifications from
the W3C.
</t>

</section>



  </middle>

  <back>

    <references title='Normative References'>

<reference anchor="HTMLBP" target="http://www.w3.org/standards/techs/htmlbp">
  <front>
    <title>Best Practices for Authoring HTML Current Status</title>
    <author >
      <organization>W3C</organization>
    </author>
    <date year=""/>
  </front>
</reference>
&RFC7841;
&RFC7322;

<!--&I-D.iab-rfc-framework; companion document RFC 7990 -->

<reference anchor='RFC7990' target='http://www.rfc-editor.org/info/rfc7990'>
<front>
<title>RFC Format Framework</title>

<author initials='H' surname='Flanagan' fullname='Heather Flanagan'>
    <organization />
</author>

<date month='December' year='2016' />

<abstract><t>The canonical format for the RFC Series has been plain-text, ASCII- encoded for several decades.  After extensive community discussion and debate, the RFC Editor will be transitioning to XML as the canonical format using the XML2RFC version 3 vocabulary.  Different publication formats will be rendered from that base document.  These changes are intended to increase the usability of the RFC Series by offering documents that match the needs of a wider variety of stakeholders.  With these changes, however, comes an increase in complexity for authors, consumers, and the publisher of RFCs.  This document serves as the framework that describes the problems being solved and summarizes the many documents that capture the specific requirements for each aspect of the change in format.</t></abstract>

</front>

<seriesInfo name='RFC' value='7990' />
<seriesInfo name="DOI" value="10.17487/RFC7990"/>
</reference>

<!--&I-D.iab-html-rfc; companion document RFC 7992-->

<reference anchor='RFC7992' target='http://www.rfc-editor.org/info/rfc7992'>
<front>
<title>HTML Format for RFCs</title>
<!--possible title update per AQ in this document itself -->
<author initials='J' surname='Hildebrand' fullname='Joe Hildebrand' role="editor">
    <organization />
</author>

<author initials='P' surname='Hoffman' fullname='Paul E. Hoffman'>
    <organization />
</author>

<date month='December' year='2016' />

<abstract><t>In order to meet the evolving needs of the Internet community, the format for RFCs is changing from a plain-text, ASCII-only format to a canonical XML format that will in turn be rendered into several publication formats.  This document defines the HTML format that will be rendered for an RFC or Internet-Draft.</t></abstract>

</front>

<seriesInfo name='RFC' value='7992' />
<seriesInfo name="DOI" value="10.17487/RFC7992"/>
</reference>


</references>

<references title='Informative References'>
   <reference anchor="CSSATTACK" target="https://doi.org/10.1145/1866307.1866376">

     <front>
       <title>Protecting browsers from cross-origin CSS attacks</title>

       <author initials="L-S" surname="Huang" fullname="Lin-Shung Huang">
         <organization />
       </author>
       <author initials="Z" surname="Weinberg" fullname="Zack Weinberg">
         <organization />
       </author>
       <author initials="C" surname="Evans" fullname="Chris Evans">
         <organization />
       </author>
       <author initials="C" surname="Jackson" fullname="Collin Jackson">
         <organization />
       </author>

       <date year="2010" />
     </front>
     <seriesInfo name="In Proceedings of the 17th ACM conference on Computer and communications security" value="(CCS '10)" />
<seriesInfo name="" value="pp. 619-629"/>
   </reference>


    </references>

<section anchor="appendix-a" title="List of Classes">
<t>This section lists all the CSS classes. Except for those also listed in <xref target="css-classes"/>, none of these result in specific changes to the
natural language content of a document.</t>
<t>
<list style="symbols">
<t>.adr</t>
<t>.alignCenter</t>
<t>.alignRight</t>
<t>.annotation</t>
<t>.artwork
<list style='empty'>
<t>.art-ascii-art</t>
<t>.art-logo</t>
<t>.art-svg</t>
</list>
</t>
<t>.ascii</t>
<t>.author</t>
<t>.authors</t>
<t>.bcp14</t>
<t>.center</t>
<t>.city</t>
<t>.compact</t>
<t>.country-name</t>
<t>.cref</t>
<t>.crefAnchor</t>
<t>.crefSource</t>
<t>.dlCompact</t>
<t>.dlHanging</t>
<t>.dlParallel</t>
<t>.docInfo</t>
<t>.ears</t>
<t>.email</t>
<t>.eref</t>
<t>.finalized</t>
<t>.fn</t>
<t>.index</t>
<t>.indexChar</t>
<t>.indexIndex</t>
<t>.indexItem</t>
<t>.indexPrimary</t>
<t>.indexSubItem</t>
<t>.initial</t>
<t>.iref</t>
<t>.irefItem</t>
<t>.irefRefs</t>
<t>.irefSubItem</t>
<t>.label</t>
<t>.left</t>
<t>.locality</t>
<t>.nameRole</t>
<t>.note
<list style="empty">
<t>.rfcEditorRemove</t>
</list>
</t>
<t>.olCompact</t>
<t>.olPercent</t>
<t>.org</t>
<t>.organization</t>
<t>.pilcrow</t>
<t>.postal-code</t>
<t>.published</t>
<t>.refContent</t>
<t>.refDate</t>
<t>.refInstance</t>
<t>.refTitle</t>
<t>.reference</t>
<t>.region</t>
<t>.relref</t>
<t>.rendered</t>
<t>.RFC</t>
<t>.rfcEditorRemove</t>
<t>.right</t>
<t>.role</t>
<t>.selfRef</t>
<t>.series</t>
<t>.seriesInfo</t>
<t>.sourcecode
<list style="empty">
<t>.lang-*</t>
</list>
</t>
<t>.street-address</t>
<t>.status</t>
<t>.street-address</t>
<t>.surname</t>
<t>.tel</t>
<t>.toc</t>
<t>.type</t>
<t>.ulCompact</t>
<t>.ulEmpty</t>
<t>.url</t>
<t>.workgroup</t>
<t>.xref</t>
<t>.vcard</t>
</list>
</t>
</section>

  <section title="IAB Members at the Time of Approval" numbered="false">

  <t>The IAB members at the time this memo was approved were (in alphabetical order):                                                       

<?rfc subcompact="yes" ?>
<list>
 <t>Jari Arkko</t>
 <t>Ralph Droms</t>
 <t>Ted Hardie</t>
 <t>Joe Hildebrand</t>
 <t>Russ Housley</t>
<t>Lee Howard</t>
 <t>Erik Nordmark</t>
 <t>Robert Sparks</t>
 <t>Andrew Sullivan</t>
 <t>Dave Thaler</t>
<t>Martin Thomson</t>
 <t>Brian Trammell</t>
 <t>Suzanne Woolf</t>
</list>
<?rfc subcompact="no" ?>
  </t>
  </section>

<section anchor="acknowledgements" title="Acknowledgements" numbered="false">
<t>With many thanks to the RFC Format Design Team for their efforts in making
this transition successful: Nevil Brownlee (ISE), Tony Hansen, Joe Hildebrand,
Paul Hoffman, Ted Lemon, Julian Reschke, Adam Roach, Alice Russo, Robert
Sparks (Tools Team liaison), and Dave Thaler.</t> 
<t>Additional thanks to Arlen Johnson of Spherical Cow Group, LLC, for his
assistance in clarifying the requirements in more CSS-designer-friendly
language.</t> 

</section>

  </back>
</rfc>


