Warning Messages Issued by Fiverizer
In general, Fiverizer works silently without issuing messages, other than listing which file it is working on, so that you won't be left wondering whether it is converting the right files. If you have a lot of files on your site, this report has the added benefit of assuring you that it is still running.
The conversions it makes to your web page are supposed to be complete. That is, it not only converts the HTML code from XHTML 1.0 to HTML5, but it also writes whatever necessary CSS it needs so that your page looks the same under HTML5 as it did with XHTML 1.0.
However, there are times when human intervention may be needed to complete the task. Since Fiverizer is just an HTML converter, there are things it cannot determine, like whether you have any existing CSS or JavaScript code that depends on the original HTML being what it was, rather than the modern HTML5 equivalent.
In such situations, Fiverizer issues a warning message to tell you the implications of the change it makes, so that you can decide if you need to take any additional action. In other words, warning messages do not mean that there was a failure to convert. In fact, Fiverizer continues converting your file to HTML5 after issuing the warning. They are only meant to alert you to the possibility that you may (or may not) have to take further action.
To make it easier for you to locate the line on your web page that gave rise to the warning, all warnings are preceded by a filename and line number.
List of warnings and what they mean
- <element> (no longer valid in HTML5) has been replaced with <new-element> Be sure to update any code (eg, CSS, JavaScript) that depends on that element being a <element>. (where <element> is <acronym>, <big>, <center>, <dir>, <font>, <frame>, <frameset>, <nobr> <strike> or <tt>; and <new-element> is the replacement element, which varies).
-
Many elements previously allowed in XHTML 1.0 and earlier are now obsolete. Fiverizer automatically replaces them with equivalent elements accepted by HTML5. If needed, it also writes additional CSS code to make the new elements look the same as the original. For example,
<acronym>
is replaced with<abbr>
.This conversion normally takes place silently, unless Fiverizer notices that the original element has a
class
orid
attribute. In such a case, the above warning message will be issued, since the presence of a class or id hints to the possibility that you have code elsewhere that references that element.An example may make this clearer. Let's say that you have some HTML that used to read
<acronym class="greentext">
. You also have some CSS either on the same page itself or loaded from an external stylesheet that says something like:acronym.greentext { color: green; }When Fiverizer updated your code, the HTML will now read
<abbr class="greentext">
. This means that your CSS code will no longer apply to that element, since your CSS code specifically said that the "color: green" rule only applies toacronym
elements with the "greentext
" class. As such, you will either need to change your CSS to read.greentext { color: green; }which will make the rule apply to any element with the "
greentext
" class, or, if you still prefer to restrict it to a particular element, to:abbr.greentext { color: green; }Likewise, if you have any JavaScript that relies on the element being an
<acronym>
, you will need to update those. - The name attribute of <element>, no longer valid in HTML5, has been replaced with an id attribute of the same value. If you have any code (eg, JavaScript, CSS) that relies on the name attribute, modify it to use an id instead. (where <element> is <a>, <embed> or <img>).
-
Certain elements which once had a
name
attribute in XHTML 1.0, are no longer allowed to have one in HTML5. As such, Fiverizer replaces it with anid
attribute of the same value.For example, your original HTML may read something like:
<a name="landingpoint">Since the
name
attribute for<a>
is no longer allowed in HTML5, the above code is replaced by:<a id="landingpoint">The above type of code is normally used to link to a specific spot on your page. The usual way this is done is to create a link elsewhere that says something like:
<a href="#landingpoint">click here</a>When someone clicks on that link, the browser will take them to the spot you marked with
<a name="landingpoint">
.If that is the only way you used the
name
attribute, you can ignore this warning, since modern browsers regardid="landingpoint"
as equivalent toname="landingpoint
for this purpose, and your links will still work as before.However, in the case where you have code elsewhere that relies on a "
name
" attribute, you will need to adjust the code to look for "id
" instead. For example, if you have a CSS selector that reads:a[name="landingpoint"] { color: green; }where the rule only applies to
<a>
elements with aname
attribute of "landingpoint
", then you will need to change the code accordingly. The same goes if you have, say, JavaScript that looks for a "name
" attribute. - The attrib attribute of <element> (now obsolete) was deleted, but not replaced with CSS because the equivalent CSS rule needs to be added to all child pages loaded by <element src=\"...\"> and not the current page. You will have to add the CSS rule yourself, if needed. (where attrib is marginheight, marginwidth, or scrolling; and <element> is either <frame> or <iframe>)
-
This message occurs if you use one of the obsolete "
marginheight
", "marginwidth
" or "scrolling
" attributes in a<frame>
or<iframe>
element. These attributes are no longer allowed in HTML5, nor is there a way to simulate it using CSS in the parent page (the page containing the frame). I suspect the removal of these facilities is for security reasons, since the framing page should never be able to tamper with a child page. HTML5 and CSS requires that you adjust such things in the child page itself.In view of this, Fiverizer deletes these attributes (since it must, as they are no longer valid) but does not add any equivalent CSS rules (since it can't, as there is no way to do so). If you still want to adjust the height and width of the margins of the child page, modify the latter directly. Otherwise, if you decide that the default settings are fine after all, just ignore the warning.
- The "xyz" charset specified in the <meta> tag is not valid for HTML5, since the latter only accepts UTF-8. Even if the resulting page displays correctly in a browser, it will not validate as error-free HTML5. (where xyz is the character set you specified in your <meta> element)
-
HTML5 only allows the UTF-8 character set to be specified in the <meta> element. Fiverizer itself also assumes that your web page is in the UTF-8 character set, or its subset, ASCII.
If your file is in the Windows-1252 encoding (referred to by Windows as "ANSI") or in ISO 8859-1, Fiverizer may still be able to convert it without corrupting it. However, although the XHTML in the file has been properly converted to HTML5, it will not be regarded as valid HTML5 by an HTML validator, since it will still be in the original character set that you used.
Fiverizer doesn't know anything about character encodings or how to go about transcoding them. It just looks for obsolete XHTML 1.0 code and converts them to HTML5/CSS. In fact, the warning arises because it was in the process of converting the
<meta>
tag on your page from the old XHTML 1.0 format to the new HTML5 format, and noticed that it didn't say "UTF-8". It still converted the tag to the new format, but warned you because, strictly-speaking, the HTML5 standards only allows the tag to specify the UTF-8 encoding and no others.That said, if your page was in the Windows-1252 or ISO 8859-1 encoding, it's possible that your page will still be displayed correctly in a web browser. You should of course test it to make sure.
Note: should you decide to manually transcode your page to UTF-8 (such as with a text editor that can handle such conversions), be sure to also update the
<meta charset>
tag on your page to say<meta charset="utf-8">
. The tag must always match the actual character set used.