I've been working on this website recently which has really challenged my technical abilities.
The complete system works like this:
- You describe and lay out the pages however you want them with XHTML and CSS.
- You describe transition timelines in an XML-based language. You can animate scalar CSS properties and colour values with cosine interpolation; you can assign attributes and CSS properties; and you can import and replace content in the document with AJAX. For accessibility, the idea must be to transition one page completely into another, although there can be some purely graphical effects in between.
Easy! It's like developing web pages in CSS, except that you get to animate your CSS properties. There's also a bit of hackery to smooth over some IE issues.
I'll post more about this when it's a bit more polished.
That's not the bit that has challenged my technical abilities. The technical challenge is working with the clients' ideas. This job is actually under subcontract so there's a chain of clients all wanting to get their way, but it seems to me that every time I implement something technically impressive, the clients see what I have achieved and assume that any small modification is an inherently small task. This is not universally true.
I think the site currently looks pretty naff. I've not had artisitic control on this one, and it's a mess. The animations are distracting, and the clients keep asking for something ridiculous, like "make this image fill the screen". That's not something that can be achieved in an attractive way with a fluid layout. This was actually in the brief, which was why I originally started with a fixed layout, but one of their first demands was to move from a fixed to a fluid layout, and I can't seem to get them to understand that's the trade off.
This is the damage Flash has done to the world of web design. Clients want pointless effects and WYSIWYG modifications, because they've seen it on other sites, without knowing the actual situation with respect to accessibility or maintainability.