Helping the Apple Web Community w/o an Apple Computer?
ptaff asks: "Web developing can burn some braincells when trying to get a page to render fine in all browsers. Using XHTML/CSS on Win/Linux, thou can get a 'satisfying' result among PC browsers (MSIE, Mozilla-and-derivatives, Konqueror, Opera) - but when it comes to Apple browsers (Mac-MSIE, Safari, Omniweb, iCab, and others), and there's no Mac around to test, how can you tell if things will work out fine? I personally experienced a CSS border directive on an input tag that completely messed up a simple document. There are some CSS compatablity sheets (this
comes to mind), but can you test further than that? is there any way a web developer can check for Apple-browser-compliance without a Mac?" If only HTML validation were as simple as submitting pages to the proper emulator, and viewing the results.
Simple -- use:
<rant> == <rant>
Escape characters
Now this post was tricky to do !
10b||~10b -- aah, what a question!
Alas, the standards are ambiguous. Plus, there is all sorts of legacy brokenness that needs to be supported. Plus new brokenness from certain large companies with such influence that whatever they do becomes the standard---in some people's minds anyway. Dave Hyatt says it much better in some of his recently archived blogging.
Protoplasm. Quiet Protoplasm. I like quiet protoplasm.
Yeah, if only... oh, wait, it is.
Of course, testing for validation and compliance to standards is not quite the same thing as "does my web page look okay in Arbitrary Browser Foo," which is what the submitter was asking about. At some point you simply have to say, "any browser will work as long as it doesn't suck with regards to published open standards."
You cannot apply a technological solution to a sociological problem. (Edwards' Law)
This story's at three comments, and already I'm hearing that "if you just use standards, it'll be OK." That's a load of bull, actually. Standards make the cross-platform problem easier to solve, but there are always differences in interpretation of a spec. Safari has CSS bugs that Mozilla doesn't, and IE's Javascript parser does things differently than Opera's. Standards support helps this situation immensely, but by no means is it a panacea. I'm a big fan of designing sites that validate to XHTML 1.1 and CSS2 (and indeed, all of mine do), but it's still a lot of effort to come up with something that both looks good and works similarly and accessibly across five major browsers and three platforms.
My advice to the poster is to do one of three things:
got standards? --- http://www.w3.org/
Safari uses the KHTML renderer from the KDE project. The same renderer is used by KDE for the Konqueror browser.
Apple's Safari team has already submitted patches to the KHTML code base. Over time Konqueror, and Safari will be the same. The one caveat is that Safari will have fixes, often before Konqueror due to a lag incorporating the Safari team's patches.
try the browser cam. CSS-D inhabitants swear by it.
--jdp Maintainer of VisEmacs
"Ignorance more frequently begets confidence than does knowledge"
- Charles Darwin
I personally use a PowerBook and VirtualPC. The combo of OS X, VirtualPC (everything x86) and Classic (OS 9 browsers) life couldn't be better. I can work anywhere, anytime and do my testing.
OK, so life could be better, I could be independently wealthy.
I've been reading Zeldman's book Designing for Web Standards at safari.oreilly.com and it addresses this quite well. Safari and Mac IE 5.2 are very compliant to standards moreso than any version of IE on Windows, so it's not as big a deal now as it once was during the browser war era. Yeesh what a mess that was.
You can rest assured that as long as you don't code with a certain browser in mind your site(s) will look pretty close across platforms, IF you design with standards in mind. Losing table based layouts or at least minimizing their usage is one of the best things you can do to increase consistency across browser version/platform. Try not to use deprecated code either, like the venerable <br> or bgcolor = * and <P align="right"> etc. Always specify a DOCTYPE.If you can move away from using old pre-war coding practices you'll be a step ahead in the fight. Check out these sites for more info on coding pages that look good in any browser on any platform:
Designing with XHTML and CSS means not leaving anybody out. From Web-enabled phones to IE 6 to text only browsers like lynx or links you'll only need to write your code once. I say do away with javascript browser detection scripts and write once, run (almost) anywhere!
There is a last resort you can go to if you must. Macromedia Flash looks the same in any browser provided you have the proper plugin. :) Although that is not my recommended solution.
You've got an easy breezy wind at your back...most of the time.
Indeed, (X)HTML does not rigidly specifiy presentation. CSS, however, are a completely new business. They specify, down to the pixel, how layout and rendering should happen. That's their use.
If at first you don't succeed, skydiving is not for you
The specifications leave certain decisions up to the browser (and the user), so it's never going to be pixel-for-pixel identical. However:
If you test in Konqueror, it should do fine in Safari as well. If
you test in Mozilla (either Navigator or Firebird), you've got Camino
covered also. Didn't OmniWeb recently switch to one of those two
rendering engines also? That of course leaves out MSIE, the mac
version of which has very different rendering quirks from the Windows
version, but Safari will hopefully phase out the Mac version of MSIE
within a couple of years.
My problem is MSIE for Windows. Even assuming I'm willing to boot
into Windows for testing, how can I test in both IE5 and IE6? I
am *not* going through the uninstall/reinstall process every time
I want to test a web page. Currently I'm just writing to specs and
*hoping* it will do mostly okay in MSIE, but in practice I know that
there will be times when it doesn't. I recently discovered, for
example, that MSIE5.5 does not support applying CSS attributes to
child elements (e.g., ".sidebar > div { padding: 0.5em; }"). I
haven't tested that in IE6... do I really have to get VMWare just
to test my web pages?
Cut that out, or I will ship you to Norilsk in a box.