19. Nov 2014: Joomla 3.x - Dealing with Microsoft-Software

First I like to mention that I will dissapoint you, this won't be a Microsoft bashing. Second I will prove everything.

The World Wide Web Consortium (W3C) is responsible for the international standardisation of the World Wide Web (WWW) and all related technologies. For details visit http://www.w3.org/ .

A short history:
1969: ARPANET (Advanced Research Projects Agency Network)
1981: CSNET (Computer Science Network); IPv4
1982: TCP/IP ( Transmission Control Protocol?Internet Protocol)
1986: NSFNET (National Science Foundation Network)
1998: Tim Berners-Lee invented HTTP aand the first HTML, the "WorldWideWeb" was born
1993: first e-mail
1994: Netscape Navigator; founding of W3C (World Wide Web Consortium)
1995: first "Internet Explorer"
1997: Netscape Communicator
1997 - 2001 "The Browser Wars"
1998: Netscape: Start of the Mozilla Project; IPv6
2002: Web 2.0
2013 - present: NSA-Spying-Scandal

Why hate so many web developers the Internet Explorer?

iecrashMicrosofts aim was to make the Internet Explorer the only web browser and to vanish all competitors. They wanted to establish their own technologies in the internet. As a result web designers are always struggeling with the Internet Explorer.

All the innovations Microsoft introduces and the Internet Explorer itself didn’t follow the web standards and this is the problem, because all other web browsers followed the web standarts correctly (maybe you remember the remark "Optimized for Internet Explorer").
About Internet Explorer: IE6 was a nightmare, IE7 and IE 8 were too little too late. With IE10 and IE11 it seems that Microsoft has learned something and keeps the web standards now.

A propos Internet Explorer: Friday, Nov 7th 2014, Daily Mail, UK: Don't use IE: Government issues major warning over Internet Explorer 6 - 11 bug and says hackers are ALREADY exploiting it

Nonstandard HTML Code

MS Office programs insert by far more code than necessary. Additionally, Microsoft-proprietary HTML tags are not confirmed by the W3C and as a result they are Microsoft-compatible but not internet-compatible. Non-Microsoft browsers normally won't interpret Micosoft-specific tags.

Additional information:
Comparison of layout engines (non-standard HTML)
Trident (alias MSHTML)
Comparison of web browser engines

Problem: MS Office

MS Word is the most common word processor and often it is used to create PDF and HTML files. MS Excel is often used for spreadsheets and to create tables for websites. MS Power Point creates extremely large image files. Microsoft software includes additional hidden Meta Data in the head of the HTML files like your name, the name of your computer, the name of the software, document revisions and comments and much more possibly damaging data that can be viewed by anyone looking at the source code of your website. Additionally there are display problems. A page looking good in MS Word may be a nightmare online. Internet browsers can not display fonts like a word processor, and browser incompatibilities increases the problems too.

HTML-files created by Microsoft programs are highly contaminated by non-standard code, which increases the file size enormously and effect the functionallity of your website. So why includes Microsoft all these crap in their HTML-code??? If you use only and exclusively Microsoft products, i.e. Microsoft-server, Microsoft-Software, MS Internet Explorer, ..., then the Microsoft-server is able to read these Microsoft-commands and add additional functionalities. But does one really need those Microsoft functionalities???? And what if one doesn't use Microsoft software???

Most internet servers use UNIX or LINUX operating systems and Apache webserver, i.e. that the additional non-standard Microsoft code is of no use, only increases the file size and causes problems with the Internet Explorer.

Proposition: It is a bad idea to copy&paste content from MS Word or to create a HTML-file using MSWord.
Proof: Example doc und Example no-doc
Solution: Copy & past a doc-text into Notepad++, then copy the text from Notepad++ and paste it into the website.

According to Microsoft it is possible to save a .doc-file in "filtered HTML":
About using filtered HTML
When you save Web pages or send e-mail messages in HTML format with Microsoft Word, additional tags are added so that you can continue to use the full functionality of Word to edit your content.
To reduce the size of Web pages and e-mail messages in HTML format, you can save them in filtered HTML so that the tags used by Microsoft Office programs are removed.
This feature is only recommended for experienced Web authors, who are concerned with the tags that appear in their HTML files.
If you reopen a Web page in Word that you saved in filtered HTML, your text and general appearance are preserved, but you may not be able to use certain Word features in the usual way to edit your files. For example, the appearance of bulleted or numbered lists is preserved; however, some of the Word functionality associated with lists will not be preserved.
When possible, you should only save a Web page in filtered HTML when you are finished editing the page in Word. However, if the underlying HTML of your Web pages is not important to you, you should save your files as a standard Web page.
If you will need to edit the file later, you can maintain two files: one in Word format and one in filtered HTML format. You can edit the content in the Word document, save it in Word format for future editing, and then save a copy in filtered HTML format.

Problem: BOM (Byte Order Mark)

Definition: The byte order mark (BOM) is a Unicode character used to signal the endianness (byte order) of a text file or stream.
But: Note : All ini files need to be saved as UTF-8 - No BOM
and: Note : All php files need to be saved as UTF-8 - No BOM

If you get an error message like:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/login/configuration.php:1) in /home/login/libraries/joomla/session/session.php on line 423

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/login/configuration.php:1) in /home/login/libraries/joomla/session/session.php on line 423

Warning: Cannot modify header information - headers already sent by (output started at /home/login/configuration.php:1)
in /home/login/libraries/joomla/session/session.php on line 426

This is caused by a BOM at the begining of the configurartion.php-file. And even worse: this BOM won't be displayed in any editor! To see a BOM, you need a Hex-Editor!
This problem may be a reult of editing a file by using Microsoft Notepad. Microsort Notepad (short: Notepad) adds always BOMs.

Solution: Use always Notepad++ to edit files.

Use LibreOffice instead of MS Office!

LibreOffice creates HTML code according to the specifications of the W3C.

W3C Checker

W3C Quality Assurance Tools
W3C Markup Validation Service:
Unicorn - W3C's Unified Validator
HTML Markup Validation Service
W3C Link Checker
W3C CSS Validation Service

Browser Tests

Browser HTML5 Test
CSS3 Browser Test

HTML5 support page

HTMH5 Doctor