Friday 26 October 2012

Interactive Webpage Tutorial

Interactive Webpage Tutorial

With the help of Web Designer Mag, I've been able to follow through an intermediate tutorial and create a template for a website. Eventually I am hopeful of using this layout as a basis for making my portfolio website at the end of this unit. The link to this tutorial can be found here, it was suggested on Blackboard as a Medium difficulty Hand code tutorial with using HTML5. 

The process of creating this webpage went smoothly however I felt that this tutorial missed out some key features of web design (such as css) and didn't really teach me some of the basics of a web template. From around pages 2-4, most of this tutorial consisted of grabbing snippets from a photoshop file and just positioning them around a page, personally I would've preferred to use sophisticated CSS3 features such as box-shadows or button stylings. Furthermore, I didn't really grasp a sense of how to put a web structure up with HTML, it just showed me a block of code and said for me to put it in. Personally, if I was to learn how to make a webpage with HTML/CSS I'd use a website such as codecademy.com to help me.

Below are a set of images to prove that I fulfilled this task, the annotations are not apart of the website itself. I will also be displaying the various images I cut from the initial design document along with the HTML and Stylesheets. 

Web Template


Html Structure


CSS Design


Images


Thursday 25 October 2012

Web Design Issues

Web Design Issues
Understandability
Recently, a study was carried out on how users read webpages and the results brought back that simply, they don’t. Instead of reading a webpage the average user (80% of people), scan a webpage the first time they visit it. When arriving at a webpage for the first time it is imperative that the designer of the page has made a good first impression, whoever the audience may be. This is why a webpage when first viewed must be easily understandable to read with some predicament from the user on how the content should operate/appear next (consistency).

This is why web designers must employ scannable text with features such as highlighted keywords to give a broad sense of the content, as well as one subject per a paragraph to keep the body varied and not ‘waffled’. Furthermore, users don’t like reading whole walls of text so keeping the main points structured apart and using variety with lists is always better than losing your place with too much content. 

To the right is a key example of a poorly designed website that has a low standard for first impressions in understanding and functionality. Please read the annotations.

Consistency
Earlier it was mentioned that users find content easily understandable when they can predict on how content should behave or appear next, this can be referred to as consistency. Consistency is a very powerful tool and is always most effective when actions based on previous experiences and new features are balanced together in moderation. When a user spends a lot of time on a website they grow accustomed to the layout of it, they hate dramatic changes. This means that over time a frequent user of a site forms expectations on how the site should act based on their experience there and on other websites too. If deviation were to occur, such as a completely new interface or a dominating feature, users may leave the website altogether, as it can be harder to use.

Many of popular websites update their interface frequently either to improve performance in the long term or to refresh the look of their business to new audiences. Take the example of Facebook or Youtube, everyday millions of people use these sites for social media and connection and it’s every 6 months or so the layout changes. Near just 1 week ago Youtube changed the layout of their site, but is it for the best? Sure users will grumble at the beginning about their favourite sites being unrecognisable, but will the new features (such as Google/Youtube integration) be more beneficial in the long run? Should Youtube be more open about Beta testing layouts? Instead of just flinging new designs onto users and expecting them to follow through with it, especially as thousands of people (partners) depend on the site for a livelihood.

Above is a short video by Vincent Flanders showing a website that has an inconsistent navigation in terms of font colour, text decoration and lack of content within webpages.
 

Cross Browser Compliance: Vendor Prefixes
As CSS develops onwards certain Browsers are finding it harder to support sophisticated presentation features, such as CSS3’s box-shadow, and are facing the issue of multiple vendor prefixes. Vendor prefixes are tags that go in front of complex CSS property values, they’re needed in some cases otherwise the certain feature may not be fully functional (visually) on a website. The key issue is that in order for the declaration to work the CSS must cater for every browser that might access the code, therefore the same property values have to be typed out but with each one having different prefixes such as –moz- (Mozilla Firefox) or –webkit- (Chrome and Safari). However though, most coders don’t want to write the same property value over and over again, in most cases it’s time consuming and can be a lot more efficient just to collapse all the prefixes into one single prefix –beta-

Although, in broader terms we can just say that there are too many differences between browsers when rendering CSS code. Take the example of the box-shadow function, both Mozilla and Webkit Browsers render this action differently to each other as they both handle the shadow blurring uniquely. Perhaps instead of thousands and thousands of developers putting in repetitive code, implementations can be brought in to hopefully achieve interoperability between browser companies. If browsers didn’t achieve this then it may get to the case where certain websites will suggest which browsers their websites would look best in, or even more dramatically have CSS pick which browser gets a certain feature and which doesn’t.
If these sorts of prospects were brought into today’s market for designing websites, then whole layouts could completely look messy and fall apart in one browser compared to another. Perhaps the striving towards a unification of browser behaviour or another method such as the –beta- prefix may fix some of the grumblings of browser creators and web developers.

The Search Function
Search is another key feature that is fundamental to nearly any website with a user database or a lot of information that may seem unnecessary to certain visitors. Whether it’s shopping for food or checking on a certain user you used to socialise over on a forum, if your website doesn’t have a broad-scope search with easy to use functions, your website will suffer. Given that typical users are quite poor at multiple query attempts, if they don’t get good results on the first or second try, an attempt at using advanced features or trying other words may seem too far-fetched to the masses of website surfers. Especially as most queries have a success rate of around 50% (on most e-commerce sites), you’d want your search function not to be too specific but neither it be not specific enough.

If a website’s search function were overly literal then cases such as typos, plurals, hyphens, etc wouldn’t be accepted as relative to what you’re searching for. More specifically, if I searched for holidays in Hawaii but kept on spelling it “Hawaai”, I wouldn’t receive any results that may be useful to me. In terms of audience as well, overly literal search functions are bad for elderly people and young children as they’re more prone to make mistakes. Another issue of a poor search function is when the engine prioritises results purely based on how many query terms they contain, instead of whole documents or webpages.

Most of the time it’s best for a website to go for a simple search as a small box is what the majority of users expect in terms of interface, especially as search serves as a alternative to when a navigation may fail.



Web Design Technologies

Web Design Technologies

HTML

HTML stands for Hyper Text Markup Language, it's the coding language that is used to display the content within a certain layout on the Internet. Unlike CSS, HTML is specifically used for the structure of content whilst CSS   is for the presentation layout.

Initially, the original code for HTML was invented over 20 years ago with updates for each version of the language infrequently occurring. Because of the span of time for updates, certain features have only been able to be put in the HTML through the usage of external programs. Take the example of Video, the integration of video for HTML has been hard to fit in naturally through each update therefore external applications have had to been used. Ones such as Real Time Player, Windows Media Player and Flash are some examples of players that have been designed as external plugins for the web. However though, because these programs are external to HTML in order for someone to achieve video on their website they would need to download these plugins from a source. As well as that, sources over the internet aren't all trustworthy so any unwanted software such as viruses may invade with downloads also. 

With HTML5, the usage of plugins could be phased out with adding video to it's capabilities. Along with other features such as Audio, drag and drop and vector graphics/animation, HTML5 is planned to create a consistent and universal web experience throughout all web devices and browsers. 


CSS

In order to implement sophisticated design elements into HTML webpages, programmers use CSS. CSS stands for Cascading Style Sheets, it's the computer language that is used to describe the presentation (view/format) of a webpage. 

The difference between HTML and CSS in simple terms is that whilst HTML is used to structure content, CSS is used to format that specific structured content. Take header and paragraph elements for example, to create these, tags such as <h1> and <p> are used. With CSS however, these tags can be stylised either by applying a style attribute or referring to the tags with an external stylesheet. Whe nthe web was originally gaining popularity web designers looked to adding a type of layout so certain tags such as <font> were used to define layout. At the time, web pages were being frequently created however browsers producers (such as Microsoft and Netscape) had an issue where structure tags, like <table>, were being misused to pages with layout, and not structure. Additionally, many layout tags were only supported by one type of browsers and not other so CSS was invented to remedy these errors.

Overall, CSS made layout opportunities a lot more sophisticated with sole stylesheets and different media options like screen or print. The main benefit to CSS though was that is helped form the fundamental law of web design, the separation of presentation style of documents from the content of documents. This, helps coding maintainence a lot more precise and easier for web designers and developers. 

The only problem that still remains today however is the functionality of advanced features with CSS3 (such as box-shadow) and it's implementation with today's ever updating and increasing web browsers. Issues like this call for the usages of prefixes or prehacks, this will be touched more upon in Web Design Issues. 


JavaScript

JavaScript is a cross-platform, objected orientated programming language designed to implement interactive elements into webpages. Initially developed by Netscape, JS has allowed web authors to closely interact with the HTML source code and create many dynamic features for their websites.

One of Javascript's main features is reading and writing to HTML elements, such as <p>, and seeing what content is inside there and manipulating it accordingly. With this type of functionality if certain conditions are met of a visitor to a website, Javascript can edit the content to provide the user with a unqiue experience. Take the example of certain Greetings depending on the time of day, if we wanted the webpage to say Good Morning, Afternoon or Evening depending on time of day we can use JS. With inbuilt functions such as .getHours, we can check what time of day it is with for loops and change the content depending on those type of conditions. Secondly, Javascript can also react to a user's behaviour. When comparing to CSS we can see that the styling of an element can change when it's hovered over, clicked on or focussed on. With Javascript, we can control the entire interface of a webpage instead of just a single element depending on mouse control. Another example of Javascript reacting to a user's behaviour can be through application forms and taking the values entered into fields and printing it out in one chunk, this can be useful for database records/entries.


With the ever increasing usage of JavaScript compared to other languages alike (such as Ruby or Python), JS is becoming the key language in creating dynamic features for web browsers. Today, JS is even exceeding it's intention of browser features with certain projects using code that is capable of powering physical real-world devices via an Arduino or running natively on mobile devices/tablets. In terms of achieving unity with a development that is efficient, JavaScript is the highly recommended code to do the job.


pHp

pHp is a server-side scripting language that stands for PHP: Hypertext Preprocessor. It’s used to create web-based applications that can create, manage, display and destroy information. Alike to JavaScript, pHp focuses on the manipulating of information with a webpage whilst JavaScript focuses on the visual/behavioural effects you can achieve with a webpage.


But what really distinguishes pHp from client-side scripting languages such as JavaScript is that the code is executed on the server, this code can be used to generate HTML that is then sent to the client. Therefore, the client would receive the results of running that script but not be able to access the underlying code of that action as it’s on the server. This is a great way for web authors to keep confidentiality with their webpages so anybody can’t steal their HTML or CSS. pHp can also interact with MySQL databases meaning that we can create scripts that can write a user’s information (username, password, etc) and retrieve information from the database. With using contents of the database, webpages such as user profiles can be created and more complex systems such as login systems or website search features can be made with pHp also. This is a great tool for creating websites that support forums and close interactions between users.

Today, pHp is seen as one of the most popular programming languages in recent years with its server-side scripting functions that have helped create well-known open source programs such as WordPress or Joomla. However though, with certain languages such as Python, Ruby and HTML5 becoming increasingly popular with similar features that may perform better or more efficiently, pHp may be one day phased out all together.