One question which is constantly being probed by both front and back-end web developers is whether there is still a need to test websites across browsers and devices. With the advancements we’ve seen in the quality of web browsers in the last five years, and the continued adoption of newer front-end web technologies such as HTML5 and CSS3, it’s definitely a question you should be asking.
Regardless of the advancements in front-end web technology, it’s still imperative that web developers continue to test their sites cross-browser, and also across different devices.
Thankfully, most back-end programming languages (think PHP) will behave uniformly from browser-to-browser. This is because the back-end languages are read by the server itself, and not the client’s web browser; this is simply where the output is displayed. More often, the problem lies in discrepancies in how markup and styling languages are understood and rendered by the web browser. Each web browser actually has its own unique way of rendering web pages, and simple markup and styling rules — those often used with HTML and CSS, for example — usually pose the greatest difficulty for web browsers to render in a uniform way. This is mostly down to the fact that browsers use different rendering engines, which affect how web pages are displayed.
Some browsers share the same rendering engine, or at least render pages in a very similar way, but there are usually at least a few minor discrepancies that can be noticed.
For example, even though both Safari and Chrome use the WebKit rendering engine, they can (and usually will) render the same page slightly differently. These differences can extend down to even simple aspects such as font weight and size.
Besides HTML and CSS, languages like JavaScript and jQuery can also behave differently from browser-to-browser. Often, this is to do with the browser’s support for specific versions or releases of the libraries your web page is calling.
It’s worth noting that older browser versions will also render pages differently than their newer, up-to-date counterparts. However, it’s probably not necessary to accommodate support for users with out-of-date browsers. Operating systems are fast improving with their method of update delivery and markup version support. In fact, most browsers and operating systems now ship with automated updates. Google Chrome, for instance, has the option for automated updates within the browser itself, reducing the concern that large numbers of users are lagging behind in dated versions of the software. To build on this, even operating systems themselves are now capable of fetching and installing software updates automatically. A good example would be in newly-released macOS Mojave, Apple’s current operating system version.
Hopefully with time we’ll see much more unity across browsers. This will definitely help in reducing the amount of code that is currently required for cross-browser support. With the decline and much-celebrated retirement of Internet Explorer, a lot of web development woes were solved overnight, but we still have a long way to go before we reach an optimal state of cross-browser rendering uniformity.
In fact, it may be something we never see, but the problem has certainly improved steadily over the last five-or-so years. Users are now opting to use simpler, widely supported browsers, over their complex and bulky rivals of the past. Google Chrome continues to hold the majority of the market share, while most Apple users opt to use Safari, which is shipped with all Macs and iOS devices.
There’s still a market for the smaller browsers, though, such as Firefox and Opera, so it’s still important to ensure cross-browser compatibility and function testing.
Overall, if you are using modern coding standards, and avoid using a dated or deprecated style of coding, you’re much likelier to find greater support across browsers and their individual rendering engines. You’ll also notice better harmony as your site transitions from its mobile to desktop version using responsive design.