Scriptorama.nl

Header image showing a keyboard, mouse, laptop and books on design patterns

WebKit experimenteert verder met CSS variabelen

Een tijdje geleden heb ik al eens geschreven over het CSS variabelen voorstel dat David Hyatt en Daniel Glazman hebben geschreven om een lang openstaand punt in CSS eens aan te pakken. Sindsdien is het op de officiƫle kanalen wat stil, maar dat betekent niet dat er niet gewerkt wordt!

(more...)

Google implementeert OAuth voor Data services

Een van de dingen die veel social websites, zoals Twitter, Hyves en Facebook doen is je de mogelijkheid geven om in hun database naar jouw vrienden te zoeken aan de hand van bijvoorbeeld hun e-mailadres. Daar is echter een probleempje mee, ze vragen vaak om je (gmail, live.com, yahoo) email wachtwoord.

(more...)

WebKit implementeert CSS variabelen

CSS3.info weet te melden, voordat er ook maar enige melding is gemaakt op WebKit's eigen weblog Surfing Safari, dat WebKit in recente nightly builds de eerder voorgestelde CSS variabelen ook daadwerkelijk implementeert.

(more...)

Opera Software brengt Opera 9.5 uit

Vandaag heeft Opera Software de laatste versie van haar desktop browser uitgebracht: Opera 9.5 die tot nu toe bekend stond onder de codenaam Kestrel. De Opera browser suite bestaat niet alleen uit een browser maar ook uit een Mail client, BitTorrent client en IRC client. De nieuwste versie van Opera zit barstensvol updates voor zowel de gebruiker als de developer.

(more...)

Site Security Policy voorstel tegen XSS & CSRF

Een werknemer van Mozilla heeft een nieuwe voorstel uit gebracht dat het gevaar van Cross Site Scripting (XSS) en Cross Site Request Forgery (CSRF) moet beperken. Het voorstel beschrijft namelijk manieren om op te geven welke hosts / domeinen bijv. Javascript mogen aanleveren of juist een bepaald request mogen uitvoeren. Mocht er een situatie voorkomen waarbij een van deze regels doorbroken zou worden (bijv: een niet toegestane host probeert request uit te voeren), dan kan de site ook een URL opgeven waarnaar een rapport gestuurd moet worden.

Site Security Policy provides a way to greatly reduce or altogether eliminate a website's attack surface for Cross-Site Scripting. With proper Site Security Policy in place, a successful XSS attack will require the attacker to have control over the contents of white-listed script source files. No longer will XSS attacks which rely on echoing script into page contents be effective. Further, if a site knows it never want to have JavaScript executing in its pages, it can simply globally disable JavaScript and not have to worry about script injection attacks against its users with supporting browsers.

Site Security Policy also provides a simple way for a website to prevent Cross-Site Request Forgery against its sensitive resources. A comprehensive CSRF protection mechanism, such as form token checking, can be complicated to implement and difficult to integrate into an existing web application. Such a mechanism may even be subject to its own security bugs. Even a properly implemented CSRF-protection-token system will not stand up in an environment with XSS bugs. Web sites facing these challenges can utilize Site Security Policy to harden themselves against attack and achieve a higher level of confidence in the security of their systems with an added layer of security. Websites will be able to fully control who can request resources from outside the site and what remote locations should be reachable by content from within the site.

Het voorstel is compleet met voorbeelden van syntax en zelfs een Firefox Addon waarin het voorgestelde reeds is geimplementeerd. Wat denk jij, zou een dergelijke beveiliging vanuit de browser helpen, of moet de focus toch meer bij de ontwikkelaars blijven liggen?

Lees het hele voorstel »

Meer CSS voorstellen: Transitions, Transforms en Animation

Na het voorstel van Daniel Glazman en David Hyatt voor CSS variabelen, heeft David Hyatt met enkele collega's van Apple nog 3 voorstellen tot uitbreiding van CSS standaard gepubliceerd, namelijk: Transitions, Animation en Transforms.

(more...)

Voorstel voor CSS Variables

Een van de dingen die mist in CSS is toch wel de mogelijkheid om variabelen te hebben. Sure, met Search & Replace kom je een heel eind maar een naam als logoKleurOranje is toch een stukje duidelijker dan #FF6600. Daarbij is het handig dat als je het wilt wijzigen, je het maar op 1 plek zou hoeven te doen.

Daniel Glazman (de ontwikkelaar van NVU) en David Hyatt, een van de hoofdontwikkelaars op Apple Safari (en dus WebKit) hebben gister een eerste voorstel voor CSS Variables als uitbreiding op de CSS 2.1 standaard gepubliceerd:

Since the release of CSS Level 2 Recommendation ten years ago in may 1998, the Web authors' community has been requesting a way of defining variables in CSS. Variables allow to define stylesheet-wide values identified by a token and usable in all CSS declarations. If a value is often used in a stylesheet - a common example is the value of the color or background-color properties - it's then easy to update the whole stylesheet statically or dynamically modifying just one variable instead of modifying all style rules applying the property/value pair.

Het voorstel dat ze doen introduceert 2 nieuwe soorten CSS regels. Een @variables blok om variabelen in te definieren en een var() functie om de variabelen weer mee uit te lezen:

CSS:
  1. @variables {
  2.   CorporateLogoBGColor: #fe8d12;
  3. }
  4.  
  5. div.logoContainer {
  6.   background-color: var(CorporateLogoBGColor);
  7. }

Het idee is dat variabelen over verschillende stylesheets binnen 1 pagina bruikbaar zijn maar dat variabelen gedefinieerd in verschillende media-selectors (print/screen/etc) wel op zichzelf staan.

Ben benieuwd of we dit binnen afzienbare tijd in browsers mogen verwelkomen!

IE8 rendert straks toch standaard in ‘Standards mode’

Goed nieuws van het IEBlog vandaag. Dean Hachamovitch van het IE development team postte daar een bericht waarin hij aangaf, naar aanleiding van de vele discussies die zijn losgebarsten na het laatste nieuws over IE8 Standards Mode en de infameuze IE8 X-UA-Compatible header/meta tag, dat IE8 straks sites die een 'strict' (HTML 4.0 Strict, XHTML 1.0 strict) doctype gebruiken direct in IE8 Standards mode zal renderen.

(more...)

Eerste working draft HTML5 vrijgegeven

Op vrijwel hetzelfde moment dat Microsoft haar nieuws over IE8 Standards mode bekend maakte, maakte het W3C ook bekend dat de eerste public working draft van HTML5 beschikbaar was. HTML5 is de opvolger van HTML4 en wordt samengesteld door onder andere ontwikkelaars van Firefox, Safari, Opera en Microsoft welke zelfs een Chairman levert.

In HTML5 worden een hele hoop dingen rechtgetrokken waar webdevelopers op dit moment ofwel een workaround voor gebruiken of erg veel moeite voor moeten doen. Ook zijn er de nodige nieuwe dingen bedacht om het web verder te brengen. Zo komen er een behoorlijk wat tags bij om HTML documenten meer semantisch correct te kunnen renderen, wordt de DOM API uitgebreidt met enkele features die we nu al vaak zien in Javascript libraries als jQuery en Prototype.

Wat is er nieuw in HTML 5?

Om uit te vinden wat er nou zoal veranderd is tussen HTML4 en HTML5 kun je het beste document lezen dat Anne van Kesteren van Opera Software ASA heeft geschreven voor het W3C: HTML5: differences from HTML4.

Het is wel belangrijk om te onthouden dat het hier gaat om een samenvatting van een public working draft van de standaard waarvan het mogelijk is en zelfs zeer waarschijnlijk dat bepaalde onderdelen nog grondig herzien of zelfs verwijderd worden.

Een kleine greep uit het document, zoals het er nu voor staat:

  • Er komen verschillende block-level elementen bij: <section>, <article>, <header>, <nav>, <menu>, etc. Deze worden gebruikt om duidelijker aan te geven hoe bepaalde delen van een HTML5 document precies gezien moeten worden.
  • Een <audio> en <video> tag worden toegevoegd om met multimedia om te gaan.
  • Er worden een paar nieuwe controls toegevoegd: <datagrid> voor het weergeven en beheren van gegevens, <canvas> + bijhorende Javascript API voor extra grafische mogelijkheden
  • De <menu> tag wordt uit het stof geklopt en krijgt de mogelijkheid om ingezet te worden als context menu.
  • Er komt een templating-systeem om delen HTML gemakkelijk te (laten) herhalen
  • De <input> tag krijgt behoorlijk wat nieuwe input-types, zoals: url, email, range en datetime.
  • HTML elementen krijgen nieuw DOM attribuut classList, waarmee je de verschillende CSS classes die op een element gezet zijn kunt benaderen en wijzigen.

Zelf HTML5 proberen.. Nog even niet..

Het zal ongetwijfeld nog even duren voordat we een browser kunnen proberen die daadwerkelijk HTML5 kunnen weergeven. De opera webbrowser heeft wel al eens een internal build gepubliceerd met ondersteuning voor de <video> tag, en de Opera browser blijkt vanaf versie 9 al enige ondersteuning te hebben voor Web Forms 2.0, waar HTML5 op bouwt. Verschillende HTML5 artikelen vind je ook al op dev.opera.com. Andere browsers, Safari en Firefox, ondersteunen de <canvas> tag al een tijdje, dit is dan ook een van de features die uit de praktijk wordt toegevoegd.

Mensen zijn natuurlijk al bezig om te proberen om delen van de HTML5 spec nu al te gebruiken. Kijk bevoorbeeld eens naar dit artikel van John Resign: the HTML5 Shiv. Dit trucje, welke overigens niet in Firefox werkt, voor de verandering, geeft je natuurlijk geen van de nieuwe features die in de spec wordt gedefinieerd, maar geeft wel de mogelijkheid om te kijken hoe je met HTML5 zal gaan werken straks.

Op naar de volgende stap voor HTML5!

Microsoft introduceert IE8 Standards Mode

Toen afgelopen maand het nieuws naar biuiten kwam dat de opkomende versie van Internet Explorer, IE8, de ACID2 test juist kon renderen was iedereen - op z'n minst eventjes - optimistisch over de toekomst van Internet Explorer. Toen merkte men echter op dat Microsoft erg hamerde op het feit dat de ACID2 test alleen in IE8 Standards Mode juist renderde. Maar daar was verder nog geen informatie over.

Die informatie is inmiddels gekomen. Chris Wilson, IE Platform Architect, heeft vandaag in een blogposting op IEBlog aangekondigd dat vanwege de problemen die Microsoft heeft ervaren bij de stap van IE6 naar IE7 nu een specifieke opt-in flag wil gebruiken voor de zogenaamde IE8 Standards mode: de X-UA-Compatible header. En dat gaat er dan zo uit zien:

HTML:
  1. <meta http-equiv="X-UA-Compatible" content="IE=8" />

Of als HTTP Header:

CODE:
  1. X-UA-Compatible: IE=8

Zonder deze X-UA-Compatible header zal IE8 zich qua renderen gedragen als IE7 in "Standards mode" zodat websites die nu voor IE7 ontwikkeld worden niet ineens stuk gaan op het moment dat IE8 gebruikt gaat worden. Wilson geeft ook later in een comment aan dat documenten met een nieuw doctype, ik kijk dan direct richting het opkomende HTML5 - waarvan vandaag overigens de eerste Public Working Draft is uitgekomen, wel standaard direct in IE8 Standards mode kunnen worden gerenderd.

Zoals altijd bij nieuws over Internet Explorer is er een explosie aan reacties geweest, met reacties uit het hele spectrum: de obligatory "het is ongelofelijk stom", "het moet maar" en "dit lijkt mij ook de beste oplossing".

Zelf ben ik er nog niet helemaal uit over wat ik hier van vind. Aan de ene kant lijkt het haast de enige manier voor Microsoft om gebruikers toch te laten upgraden naar nieuwe versies, iets wat bij IE7 niet bepaald vlekkeloos gegaan is, maar aan de andere kant brengt het ook enkele beperkingen met zich mee en zitten we na de definitie nu met nog een Internet Explorer specifieke optie om Internet Explorer "standards" gedrag te definieren. Een van de comments op het blogposting bracht het mooi:

[...]
wow... quirks mode, standards mode, super standards mode... :D

In IE9 we will see the super duper standards mode... this will be the ABBA release... hehe

Wat denk jij, is dit de zoveelste stomme actie van Microsoft of kan dit toch helpen de standards-impasse van Internet Explorer te doorbreken?