Allowing access to everyone regardless of any disability gives the Web universal power.
Every bit of information published on the web should work for everyone, including location, language, software, hardware, and personal ability. People with disabilities affecting their hearing, sight, movement, and cognitive should have equal access to information.
Today's world depends on the internet for most things, including employment, government, education, health care, recreation, commerce, food, and more. Equal access and equal opportunities are fundamental human rights in the United Nations Conventions on the Rights of Persons with Disabilities (UN CRPD).
We need to ensure our information and technologies are built upon a foundation for print, audio, and visual media.
We need to ensure our information and technologies support a foundation for print, audio, and visual media. Accessible design improves the overall user experience across different devices and can enhance your brand innovation and extend your market research.
Content SEO has everything to do with creating content that helps your web pages rank high in search engines. Google and other search engines read your website. Suppose the design of your pages has an excellent user interface. That's one thing. Image and code optimization for web page speed and device responsiveness is another. Keyword research is another essential aspect of great SEO. Here are four suggestions from Google to consider while writing quality content:
If you do your keyword research right, you should have a clear overview of the terms people use and the phrases you want the pages with the information found on your site. Proper keyword research will make clear which search terms your audience uses. It's crucial to define particular words used by your audience.
Free yourself up by using the things machines can do so you can do what matters – running your business. We can help you identify the next marketing myths to bust so you can become a more innovative digital marketer.
SEO and Analytics go hand-in-hand. Believe it or not, companies do not have to spend a lot of money on SEO or Analytics. Well thought out SEO makes your website findable. Content is king. Focus on lean, keyword-rich, buzzword-free content that’s relevant to your customers, and use semantic markup. Copy, CSS layout, and HTML5’s latest coding practices are the golden keys to findability.
Today's marketers want to analyze if a visitor to their website scrolled down a page or watched a video and how many visitors bounce away from the website.
According to the latest research by the Google Marketing group, there are six metrics measurements that matter when considering your Marketing Strategy. They reported on seventy different metrics globally and discussed how to compare one campaign strategy to another because it seemed they were speaking other languages.
So, they whittled down all those data points to just six metrics that matter. Google’s Marketing run metrics on just two campaigns: brand and performance. They care about three things: whether they capture people’s attention, behavior via response, and outcome. They don’t drown in metrics but use one for each thing they’re interested in measuring.
We can measure understanding how visitors interact with our sites. The machine can give us insights inspiration and make us more creative through a calculative approach. Calculating customer lifetime (CLV) identifies your most valuable customers are, and successful marketers use these calculations to become more creative.
Google uses a creative approach to optimize display and search ads in real-time and updates these algorithms regularly. These algorithms refresh and optimize their calculations for their Google Ads bidding strategy. Machine learning offers data such as the source of the traffic to your website and the success of specific campaigns.
Free yourself up by using the things machines can do so you can do what matters – running your business. We can help you identify the next marketing myths to bust so you can become a more innovative digital marketer.
SEO and Analytics go hand-in-hand. Believe it or not, companies do not have to spend a lot of money on SEO or Analytics. Well thought out SEO makes your website findable. Content is king. Focus on lean, keyword-rich, buzzword-free content that's relevant to your customers, and use semantic markup. Copy, CSS layout, and HTML5's latest coding practices are the golden keys to findability.
User Interface design requires a good understanding of user needs. There are several phases and processes in the user interface design and depend on the project, whether it is for websites, applications, or devices.
The first phase focuses on requirements gathering - assembling a list of the functionality required by the project to accomplish the goals of the project and the potential needs of the users.
Field research is the analysis of the potential users. By studying how they perform the tasks that the design must support and conducting tests. Typical questions involve:
Information architecture - is the hierarchy of the process and information flow.
Prototyping - is the development of wire-frames that concentrate on the interface's content hierarchy.
Usability inspection - is when an evaluator inspects a user interface or conducts usability testing, which should occur early in the development process.
Heuristic evaluation (established usability principles) - is a usability inspection method that identifies usability problems. It specifically involves evaluators examining the interface and judging its compliance with these principles. These evaluation methods are now widely taught and practiced in the new media sector, where UIs designed in a short time on a budget that may restrict other types of testing. The main goal of heuristic evaluations is to identify any problems with the user interface design. Usually, the problems discovered are categorized - often on a numerical scale- according to their estimated impact on user performance and acceptance. The evaluation focuses on user tasks to provide feedback to the developers on the extent to which the interface is likely to be compatible with the intended users' needs and preferences.
Heuristic evaluation can occur by one person, which reduces cost and time, cutting down on design errors. Most heuristic evaluations accomplished quickly depend on the size of the project, its complexity, the purpose of the review, the nature of the usability issues that arise in the study, and the competence of the reviewers. Jakob Nielsen's heuristics are probably the most-used heuristics for user interface design. His published book Usability Engineering are as follows:
User Interface design (UI) or user interface engineering is the user interface design for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, focusing on maximizing the user experience. The goal of the user interface design is to make the user's interactions as simple and efficient as possible.
The design process must balance technical functionality and visual elements to create a system that is operational but also usable and adaptable to changing user needs.
A good user interface facilitates finishing the task at hand without drawing unnecessary attention to itself. Graphic design and typography support its usability, influencing how the user performs specific interactions and improving the aesthetic appeal of the design; design aesthetics may enhance or detract from the ability of users to use the functions of the interface.
Interface design is involved in a wide range of projects from computer systems, to cars, to commercial planes; all of these projects involve much of the same fundamental human interactions yet also require some unique skills and knowledge. As a result, ATTI2 designers tend to specialize in certain types of projects and have skills centered on their expertise, whether software design, user research, web design, or industrial design.
In February 2001, 17 software developers met at the Snowbird resort in Utah to discuss lightweight development methods. They published the Manifesto for Agile Software Development, in which they shared that through their combined experience of developing software and helping others to do it they had come to value:
Self-organization and motivation are important, as are interactions like co-location and pair programming.
Working software is more useful and welcome than just presenting documents to clients in meetings.
Requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important.
Agile methods are focused on quick responses to change and continuous development.
Some of the authors formed the Agile Alliance, a non-profit organization that promotes software development according to the manifesto's values and principles. Introducing the manifesto on behalf of the Agile Alliance, Jim Highsmith said,
The Agile movement is not anti-methodology, in fact, many of us want to restore credibility to the word methodology. We want to restore a balance. We embrace modeling, but not in order to file some diagram in a dusty corporate repository. We embrace documentation, but not hundreds of pages of never-maintained and rarely-used tomes. We plan but recognize the limits of planning in a turbulent environment. Those who would brand proponents of XP or SCRUM or any of the other Agile Methodologies as "hackers" are ignorant of both the methodologies and the original definition of the term hacker.
— Jim Highsmith, History: The Agile Manifesto
Customer satisfaction by early and continuous delivery of valuable software
There are many specific agile development methods. Most promote teamwork, collaboration, and process adaptability throughout the product development life-cycle.
Most agile development methods break product development work into small increments that minimize the amount of up-front planning and design. Iterations are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a cross-functional team working in all functions: planning, analysis, design, coding, unit testing, and acceptance testing. At the end of the iteration, a working product is demonstrated to stakeholders. This minimizes overall risk and allows the product to adapt to changes quickly. An iteration might not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations might be required to release a product or new features.
Working software is the primary measure of progress.
No matter which development method is followed, every team should include a customer representative (product owner in Scrum). This person is agreed by stakeholders to act on their behalf and makes a personal commitment to being available for developers to answer questions throughout the iteration. At the end of each iteration, stakeholders and the customer representative review progress and re-evaluate priorities with a view to optimizing the return on investment (ROI) and ensuring alignment with customer needs and company goals.
In agile software development, an information radiator is a (normally large) physical display located prominently near the development team, where passers-by can see it. It presents an up-to-date summary of the product development status. A build light indicator may also be used to inform a team about the current status of their product development.
A common characteristic in agile development is the daily stand-up (also known as the daily scrum). In a brief session, team members report to each other what they did the previous day toward their team's iteration goal, what they intend to do today toward the goal, and any roadblocks or impediments they can see to the goal.
Specific tools and techniques, such as continuous integration, automated unit testing, pair programming, test-driven development, design patterns, domain-driven design, code refactoring, and other techniques are often used to improve quality and enhance product development agility.
Compared to traditional software engineering, agile software development mainly targets complex systems and product development with dynamic, non-deterministic, and non-linear characteristics, where accurate estimates, stable plans, and predictions are often hard to get in early stages—and big up-front designs and arrangements would probably cause a lot of waste, i.e., are not economically sound. These basic arguments and previous industry experiences learned from years of successes and failures, have helped shape agile development's favor of adaptive, iterative, and evolutionary development.
Development methods exist on a continuum from adaptive to predictive. Agile methods lie on the adaptive side of this continuum. One key of adaptive development methods is a "Rolling Wave" approach to schedule planning, which identifies milestones but leaves flexibility in the path to reach them, and also allows for the milestones themselves to change. Adaptive methods focus on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes as well. An adaptive team has difficulty describing exactly what will happen in the future. The further away a date is, the more vague an adaptive method is about what will happen on that date. An adaptive team cannot report exactly what tasks they will do next week, but only which features they plan for next month. When asked about a release six months from now, an adaptive team might be able to report only the mission statement for the release, or a statement of expected value vs. cost.
Predictive methods, in contrast, focus on analyzing and planning the future in detail and cater to known risks. In the extremes, a predictive team can report exactly what features and tasks are planned for the entire length of the development process. Predictive methods rely on effective early phase analysis and if this goes very wrong, the project may have difficulty changing direction. Predictive teams often institute a change control board to ensure they consider only the most valuable changes.
Risk analysis can be used to choose between adaptive (agile or value-driven) and predictive (plan-driven) methods. Barry Boehm and Richard Turner suggest that each side of the continuum has its own home ground, as follows:
Agile methods | Plan-driven methods | Formal methods |
Low criticality | High criticality | Extreme criticality |
Senior developers | Junior developers | Senior developers |
Requirements change often | Requirements do not change often | Limited requirements, limited features see Wirth's law |
One of the differences between agile and waterfall is the approach to quality and testing. In the waterfall model, there is always a separate testing phase after a build phase; however, in agile development testing is completed in the same iteration as programming.
Because testing is done in every iteration—which develops a small piece of the software—users can frequently use those new pieces of software and validate the value.
After the users know the real value of the updated piece of software, they can make better decisions about the software's future. Having a value retrospective and software re-planning session in each iteration—Scrum typically has iterations of just two weeks—helps the team continuously adapt its plans so as to maximize the value it delivers.
This iterative approach supports a product rather than a project mindset. This provides greater flexibility throughout the development process; whereas on projects the requirements are defined and locked down from the very beginning, making it difficult to change them later. Iterative product development allows the software to evolve in response to changes in a business environment or market requirements.
Because of the short iteration style of agile software development, it also has strong connections with the lean startup concept.
In a letter to IEEE Computer, Steven Rakitin expressed cynicism about agile development, calling it "yet another attempt to undermine the discipline of software engineering" and translating "Working software over comprehensive documentation" as "We want to spend all our time coding. Remember, real programmers don't write documentation."
This is disputed by proponents of agile software development, who state that developers should write documentation if that's the best way to achieve the relevant goals, but that there are often better ways to achieve those goals than writing static documentation. Scott Ambler states that documentation should be "Just Barely Good Enough" (JBGE), that too much or comprehensive documentation would usually cause waste, and developers rarely trust detailed documentation because it's usually out of sync with code, while too little documentation may also cause problems for maintenance, communication, learning and knowledge sharing. Alistair Cockburn wrote of the Crystal Clear method:
Crystal considers development a series of cooperative games and intends that the documentation is enough to help the next win at the next game. The work products for Crystal include use cases, risk list, iteration plan, core domain models, and design notes to inform on choices...however there are no templates for these documents and descriptions are necessarily vague, but the objective is clear, just enough documentation for the next game. I always tend to characterize this to my team as: what would you want to know if you joined the team tomorrow. <div — Alistair Cockburn.
Software development life-cycle support
Agile methods support a broad range of the software development life cycle. Some focus on the practices (e.g., XP, pragmatic programming, agile modeling), while some focus on managing the flow of work (e.g., Scrum, Kanban). Some support activities for requirements specification and development (e.g., FDD), while some seek to cover the full development life cycle (e.g., DSDM, RUP).
Agile development is supported by a number of concrete practices, covering areas like requirements, design, modeling, coding, testing, planning, risk management, process, quality, etc. Some notable agile practices include:
The Agile Alliance has provided a comprehensive online guide to applying agile and other practices.
In the literature, different terms refer to the notion of method adaptation, including 'method tailoring', 'method fragment adaptation' and 'situational method engineering'. Method tailoring is defined as:
A process or capability in which human agents determine a system development approach for a specific project situation through responsive changes in, and dynamic interplays between contexts, intentions, and method fragments. <div — Mehmet Nafiz Aydin et al., An Agile Information Systems Development Method in use
Potentially, almost all agile methods are suitable for method tailoring. Even the DSDM method is being used for this purpose and has been successfully tailored in a CMM context. Situation-appropriateness can be considered as a distinguishing characteristic between agile methods and traditional software development methods, with the latter being relatively much more rigid and prescriptive. The practical implication is that agile methods allow product development teams to adapt working practices according to the needs of individual products. Practices are concrete activities and products that are part of a method framework. At a more extreme level, the philosophy behind the method, consisting of a number of principles, could be adapted (Aydin, 2004).
Some approaches, such as Scrum and extreme programming, make the need for method adaptation explicit. With these less-prescriptive frameworks, one of the principles is that no single process fits every product development, but rather that practices should be tailored to the needs of the product. Mehdi Mirakhorli proposes a tailoring practice that provides a sufficient roadmap and guidelines for adapting all the practices. RDP Practice is designed for customizing XP. This practice, first proposed as a long research paper in the APSO workshop at the ICSE 2008 conference, is currently the only proposed and applicable method for customizing XP. Although it is specifically a solution for XP, this practice has the capability of extending to other methodologies. At first glance, this practice seems to be in the category of static method adaptation but experiences with RDP Practice say that it can be treated like dynamic method adaptation. The distinction between static method adaptation and dynamic method adaptation is subtle.
Scrum isn't designed for method tailoring. Schwaber notes that "Scrum is not a methodology that needs enhancing. That is how we got into trouble in the first place, thinking that the problem was not having a perfect methodology. Effort centers on the changes in the enterprise that is needed." Bas Vodde reinforces this statement, suggesting that Scrum isn't like traditional, large methodologies that require you to "pick and choose" elements. It is the basics on top of which you add additional elements to localize and contextualize its use.
Agile methods have much in common with the Rapid Application Development techniques from the 1980/90's as espoused by James Martin and others. In addition to technology-focused methods, customer-and-design-centered methods, such as Visualization-Driven Rapid Prototyping developed by Brian Willison, work to engage customers and end-users to facilitate agile software development.
Further, James M. Kerr and Richard Hunter wrote a book on the subject that presented a day-by-day diary of a real RAD development. It covered work right from inception through to production and contains many of the techniques that forge the backbone of, and are very much present in, today's agile product development approaches.
In 2008 the Software Engineering Institute (SEI) published the technical report "CMMI or Agile: Why Not Embrace Both" to make clear that the Capability Maturity Model Integration and agile methods can co-exist. Modern CMMI-compatible development processes are also iterative. The CMMI Version 1.3 includes tips for implementing CMMI and agile process improvement together.
Organizations that adopt agile development see more frequent releases; which led to the concepts of continuous delivery and DevOps. While DevOps and agile software development both embody many Lean philosophies, such as collaboration and communication, they are distinct concepts. While agile principles represent a change in thinking, DevOps seeks to implement actual organizational cultural change.
Agile development has been widely seen as highly suited to certain types of environments, including small teams of experts working on greenfield projects, and the challenges and limitations encountered in the adoption of agile methods in a large organization with legacy infrastructure are well-documented and understood.
In response, a range of strategies and patterns has evolved for overcoming challenges with large-scale development efforts (>20 developers) or distributed (non-collocated) development teams, amongst other challenges; and there are now several recognised frameworks that seek to mitigate or avoid these challenges, including:
There are many conflicting viewpoints on whether all of these are effective or indeed fit the definition of agile development, and this remains an active and ongoing area of research.
When agile software development is applied in a distributed setting (with teams dispersed across multiple business locations), it is commonly referred to as distributed agile development. The goal is to leverage the unique benefits offered by each approach. Distributed development allows organizations to build software by strategically setting up teams in different parts of the globe, virtually building software round-the-clock (more commonly referred to as the follow-the-sun model). On the other hand, agile development provides increased transparency, continuous feedback, and more flexibility when responding to changes.
Agile methods were initially seen as best suitable for non-critical product developments, thereby excluded from use in regulated domains such as medical devices, pharmaceutical, financial, nuclear systems, automotive, and avionics sectors, etc. However, in the last several years, there have been several initiatives for the adaptation of agile methods for these domains.
There are numerous standards that may apply in regulated domains, including ISO 26262, ISO 9000, ISO 9001, and ISO/IEC 15504. A number of key concerns are of particular importance in regulated domains:
The Scrum framework in particular has received considerable attention. Two derived methods have been defined: R-Scrum (Regulated Scrum) and SafeScrum.
Teams and organizations choosing to adopt more agile ways of working typically undertake an agile transformation with the support of one or more agile coaches. The agile coach guides teams through the transformation. There are typically two styles of agile coaching: push-based and pull-based agile coaching.
Although agile methods can be used with any programming paradigm or language in practice, they were originally closely associated with object-oriented environments such as Smalltalk and Lisp, and later Java. The initial adopters of agile methods were usually small to medium-sized teams working on unprecedented systems with requirements that were difficult to finalize and likely to change as the system was being developed. This section describes common problems that organizations encounter when they try to adopt agile methods as well as various techniques to measure the quality and performance of agile teams.
Organizations and teams implementing agile development often face difficulties transitioning from more traditional methods such as waterfall development, such as teams having an agile process forced on them. These are often termed agile anti-patterns or more commonly agile smells. Below are some common examples:
A goal of agile software development is to focus more on producing working software and less on documentation. This is in contrast to waterfall models where the process is often highly controlled and minor changes to the system require significant revision of supporting documentation. However, this does not justify completely doing without any analysis or design at all. Failure to pay attention to design can cause a team to proceed rapidly at first but then to have significant rework required as they attempt to scale up the system. One of the key features of agile software development is that it is iterative. When done correctly design emerges as the system is developed and commonalities and opportunities for re-use are discovered.
In agile software development, stories (similar to use case descriptions) are typically used to define requirements and an iteration is a short period of time during which the team commits to specific goals. Adding stories to an iteration in progress is detrimental to a good flow of work. These should be added to the product backlog and prioritized for a subsequent iteration or in rare cases the iteration could be canceled.
This does not mean that a story cannot expand. Teams must deal with new information, which may produce additional tasks for a story. If the new information prevents the story from being completed during the iteration, then it should be carried over to a subsequent iteration. However, it should be prioritized against all remaining stories, as the new information may have changed the story's original priority.
Agile software development is often implemented as a grassroots effort in organizations by software development teams trying to optimize their development processes and ensure consistency in the software development life cycle. By not having sponsor support, teams may face difficulties and resistance from business partners, other development teams, and management. Additionally, they may suffer without appropriate funding and resources. This increases the likelihood of failure.
A survey performed by Version One found respondents cited insufficient training as the most significant cause for failed agile implementations Teams have fallen into the trap of assuming the reduced processes of agile development compared to other methodologies such as waterfall means that there are no actual rules for agile development. Agile development is a set of prescribed methodologies, and training/practice is a requirement.
The product owner is responsible for representing the business in the development activity and is often the most demanding role.
A common mistake is to have the product owner role filled by someone from the development team. This requires the team to make its own decisions on prioritization without real feedback from the business. They try to solve business issues internally or delay work as they reach outside the team for direction. This often leads to distraction and a breakdown in collaboration.
The agile process requires teams to meet product commitments, which means they should focus only on work for that product. However, team members who are seen as having spare capacity are often expected to take on other work, which means it is then difficult for them to help complete the work to which their team had commmitted.
Teams may fall into the trap of spending too much time preparing or planning. This is a common trap for teams less familiar with the agile process where the teams feel obligated to have a complete understanding and specification of all stories. Teams should be prepared to move forward only with those stories in which they have confidence, then during the iteration continue to discover and prepare work for subsequent iterations (often referred to as backlog refinement or grooming).
A daily standup should be a focused, timely meeting where all team members disseminate information. If problem-solving occurs, it often can only involve certain team members and potentially is not the best use of the entire team's time. If during the daily standup the team starts diving into problem-solving, it should be tabled until a sub-team can discuss, usually immediately after the standup completes.
One of the intended benefits of agile development is to empower the team to make choices, as they are closest to the problem. Additionally, they should make choices as close to implementation as possible, to use more timely information in the decision. If team members are assigned tasks by others or too early in the process, the benefits of localized and timely decision-making can be lost.
Being assigned work also constrains team members into certain roles (for example, team member A must always do the database work), which limits opportunities for cross-training. Team members themselves can choose to take on tasks that stretch their abilities and provide cross-training opportunities.
Another common pitfall is for a scrum master to act as a contributor. While not prohibited by the Scrum methodology, the scrum master needs to ensure they have the capacity to act in the role of scrum master first and not working on development tasks. A scrum master's role is to facilitate the process rather than create the product.
Having the scrum master also multitasking may result in too many context switches to be productive. Additionally, as a scrum master is responsible for ensuring roadblocks are removed so that the team can make forward progress, the benefit gained by individual tasks moving forward may not outweigh roadblocks that are deferred due to lack of capacity.
Due to the iterative nature of agile development, multiple rounds of testing are often needed. Automated testing helps reduce the impact of repeated unit, integration, and regression tests and frees developers and testers to focus on higher-value work.
Test automation also supports continued refactoring required by iterative software development. Allowing a developer to quickly run tests to confirm refactoring has not modified the functionality of the application may reduce the workload and increase confidence that cleanup efforts have not introduced new defects.The agile movement is in some ways a bit like a teenager: very self-conscious, checking constantly its appearance in a mirror, accepting few criticisms, only interested in being with its peers, rejecting en bloc all wisdom from the past, just because it is from the past, adopting fads and new jargon, at times cocky and arrogant. But I have no doubts that it will mature further, become more open to the outside world, more reflective, and also therefore more effective. — Philippe Kruchten
I've watched HTML and CSS go through great changes, and one area that has become so much easier for web developers to grasp is the media query.
Here is a simplified version of using media queries to target the ever expanding number of screen sizes using a generallzed target, as opposed to going after each device separately. However, you can always fix a display problem for a specific device using max-device-width, but that can come as an afterthought, making developing much easier.
/* Small screens */
@media only screen { } /* Define mobile styles */
@media only screen and (max-width: 40em) { } /* max-width 640px, mobile-only styles, use when QAing mobile issues */
/* Medium screens */
@media only screen and (min-width: 40.063em) { } /* min-width 641px, medium screens */
@media only screen and (min-width: 40.063em) and (max-width: 64em) { } /* min-width 641px and max-width 1024px, use when QAing tablet-only issues */
/* Large screens */
@media only screen and (min-width: 64.063em) { } /* min-width 1025px, large screens */
@media only screen and (min-width: 64.063em) and (max-width: 90em) { } /* min-width 1025px and max-width 1440px, use when QAing large screen-only issues */
/* XLarge screens */
@media only screen and (min-width: 90.063em) { } /* min-width 1441px, xlarge screens */
@media only screen and (min-width: 90.063em) and (max-width: 120em) { } /* min-width 1441px and max-width 1920px, use when QAing xlarge screen-only issues */
/* XXLarge screens */
@media only screen and (min-width: 120.063em) { } /* min-width 1921px, xxlarge screens */
Parallax design produces a scrolling technique that moves layers of content and backgrounds at different speeds. Parallax can produce a one-page website which at first seems like a great concept for usability. Just scroll. Everybody scrolls! Of course, the web community and savvy website owners understand that this seemingly cool trend has its downside. SEO can be greatly hindered if you don't put in extra effort to program your site to be search engine friendly.
A search engine results page (SERP) is the page displayed by a search engine in response to a query by a searcher. The main component of the SERP is the listing of results that are returned by the search engine in response to a keyword query.
The results are of two general types, organic (i.e., retrieved by the search engine's algorithm) and sponsored (i.e., advertisements). The results are normally ranked by relevance to the query. Each result displayed on the SERP normally includes a title, a link that points to the actual page on the Web, and a short description showing where the keywords have matched content within the page for organic results. For sponsored results, the advertiser chooses what to display. There may be several SERPs in response to a single search.
Webpages that score well on a search engine's algorithmic test show in this list. These algorithms are generally based upon factors such as the content of a webpage, the trustworthiness of the website, and external factors such as backlinks, social media, news, advertising, etc. Paid SERP listings are advertisements, or sponsored links, included by search engines in their search results. Websites pay search engines to have their web pages listed here. However, this service is distinct from pay per click, which refers to advertisements placed on websites.
Rich snippets are displayed by Google in the search results page when a website contains content in structured data markup. Structured data markup helps the Google algorithm to index and understand the content better.
A one-page website will have only one h1 headline tag ranked, which will most likely diminish the content you have planned for your site. A one-page website will most likely be very heavy with content, which will create a speed load problem. Pro developers also suggest you turn parallax off completely for your mobile device users because of the heavy load.
Using Jquery - This is a great way to tweak your site for search engine friendliness. Google Webmaster published Infinite Scroll Search Friendly. By using jQuery's 'pushState's' functionality, the page will be 'cut' into various sections which can be identified in the SERP's, each with its unique URL and metadata. The goal is to have the one page get indexed multiple times for different content.
Keep in mind this is a great technique for indexing your content, but it really hurts analytics. Your visitors come to your page, scroll, leave. The bounce rate is based on one page, so you don't get a clear picture of engagement or relevance.
There are several techniques for improving the behavior of a parallax website, including alternatives that just look like parallax, but are handled differently through programming.
The Parallax design can produce a great experience that will engage your audience, and it doesn't have to hurt your chances at obtaining good SEO rankings, but of course, there's a cost involved for the additional programming.
Trends come and go. Who knows where the next crave in web design will come from. One thing is for sure: Creative simplicity, coding standards, organic relevance based on subject, all together, create a great experience. Simplicity for speed. Standards to reach the entire world, including people with disabilities. Relevance means well-written, informative content that can be found when someone searches a topic.
It isn’t that difficult to create a modern website based on current web standards. If your website was built using the latest technology, your site will be super-fast, modern, clean, and responsive.
Everyone wants their website to cost less, work better, and reach more people in today’s browsers, screen readers, and wireless devices. The inescapable technological advancements that are happening as we speak are breaking websites all over the internet. A modern website built using the latest coding practices ensures that your website will function properly across all devices and help individuals with disabilities who are using special devices to access and interact with the internet – and stand the test of time.
You don’t have to spend money on trendy, short-sighted, proprietary solutions that will end in disaster. No one can afford to piecemeal a website that will ultimately break sooner than later.
Coding several different stylesheets might have seemed like a great idea at the time, but it is not a rational solution to problems that are continuing to plague site owners and builders.
WaSP (www.webstandards.org) advocates standards that reduce the cost and complexity of site creation and ensure simple, affordable access for all. Today, every browser supports web standards as a matter of course. They work with the designers of development tools such as Dreamweaver. You can find a myriad of web standards educational tools and this information can be found in most languages today.
Apple’s latest WebKit-based Safari browser, which powers the iPhone’s web browser, Mozilla-powered Firefox, Opera, the WebKit-based Google Chrome, and Microsoft Internet Explorer 7+ understand and correctly support XHTML, CSS3, JavaScript, and the DOM.
*Internet Explorer 6 does not support many of the latest web standards, and we can only hope that everyone has moved past this version of IE. Developers know that we can fix IE6 to some degree, but there comes a time when you have to move forward and not look back. We’ve stopped overkill fixes because newer phones are equipped with the latest browsers and it just doesn’t warrant the extra time and expense anymore to work out ALL the fixes needed for IE6 to view properly.
JavaScript gives us the ability to create action! In a perfect world, browsers perfect their support for every single standard. Considering that most software doesn’t come out bug-free, and standards are sophisticated and complex, cross-browser support is actually pretty solid enough that we do develop using the latest standards. HTML5, more accessibility, CSS3, structured markup, and deeper DOM and JavaScript function calls are becoming the progressive-enhancement that is pushing the internet into the future. All the big companies such as Apple, MSN, Wikipedia, and WordPress have embraced web standards. Of course, they don’t always achieve perfect validation or pure semantic markup, but a trained developer can make these markup fixes very quickly, and let’s face it, modern browsers are lenient.
More than 50% of all websites are obsolete. They might look good on desktop browsers, but outside of that, the symptoms of decay are starting to appear. Carefully constructed layouts have begun to fall apart, and expensively engineered behaviors have stopped working. As browsers evolve, site performance continues to deteriorate.
Modern browsers are not merely newer versions of the same old thing. They differ fundamentally from their predecessors, and in many cases, they’ve been rebuilt from the ground up. They have a new job: to comply as well as possible with the web standards. As the newer browsers comply with web standards, they are becoming increasingly intolerant of broken code and markup.
Our mission follows some basic rules:
Control layout, placement, and typography in desktop browsers while allowing users to modify the presentation to suit their needs.
Develop and support sophisticated behaviors that work across multiple browsers and platforms.
Comply with accessibility laws and guidelines without sacrificing beauty, performance, or sophistication.
Redesign quickly – reducing costs and eliminating unnecessary work.
Support emerging devices from wireless gadgets and smart-phones to Braille output devices and screen readers used by those with disabilities with one website.
Offer sophisticated printed versions of any web page.
Stay educated and ahead of the curve to always use real semantic markup.
SEO and Analytics go hand-in-hand. Believe it or not, companies do not have to spend a lot of money on SEO or Analytics. Well thought out SEO makes your website findable. Content is king. Focus on lean, keyword-rich, buzzword-free content that’s relevant to your customers, and use semantic markup. Copy, CSS layout, and HTML5’s latest coding practices are the golden keys to findability.
Accessibility makes sure your content can be read and your site can be used by everyone, no matter what device they browse with, and regardless of physical ability. Innovation is the soul of accessibility. Accessibility is a legal standard for judging and enforcing the accessibility of sites. This is great news because the world is being pushed into one single standard.
If you use standards-based designing principles, you not only make your content easy for search engines to find, it will also enable visually disabled people who use screen readers to navigate your website's content.
Screen reader users navigate web pages by tabbing from h2 to h2 and from section to section, just like sighted users navigate by visually scanning. When structuring your site semantically, pay particular attention to forms and tables. Provide keyboard access for those who are unable to use a mouse. Keyboards and assistive devices are the gateways to the online user experience.
Google web crawlers look for the relevancy of content when a user types in an inquiry. Think of web crawlers as blind users – Google is the biggest blind user on the web. Dish out appropriate content, well written and well structured, and you not only serve the blind folks in your audience, you also attract millions of sighted ones.
It wouldn’t be smart to exclude disabled Americans. This demographic would take up a city the size of Los Angeles or New York City. Millions!
If you think blind people don’t buy products online is missing the point and the boat. Don’t be blind yourself to the true nature of the audience you reject – you are still reaching the non-disabled populace this way by conforming to access guidelines and many others who would have ordered your products over the phone if only your site let them.
Section 508 requires all websites under its jurisdiction to provide “equal or equivalent access to everyone” to accommodate the visually impaired, the hearing impaired, the physically disabled, and people who have photosensitive epilepsy and it spells out what accessibility really means. This law covers computers, fax machines, copiers, telephones, transaction machines, and kiosks, as well as other equipment used for transmitting, receiving, or storing information. It also covers many websites. Section 508 became U.S. law in 2001 and applies to the following:
Most tasks to bring a website to its best take minutes to accomplish. Simple tasks like adding a label to your web form or writing a table summary. Type a brief alt text for each image – which is a no-brainer. High-level conformance is going to obviously fall under another category and will cost more. If you want to author closed captions for web videos or to caption live streaming media news feeds in real time see Joe Clark’s “Best Practices in Online Captioning” . (www.joeclark.org/access/captioning/bpoc)
I highly recommend the following cited book for anyone who builds things for the internet. Web Standards is such an exciting concept that ties us all together. Where we go from here who knows, but right now we are accomplishing a great thing using Web Standards, and this book is a must-have.
You can find the latest Standards and beta versions of some brilliant new concepts existing on the W3C website. Their HTML5 Validator is a great place to find semantic errors within your page. Go to http://validator.W3.org/ for the latest information.
Jeffrey Zeldman with Ethan Marcotte (2010). Designing with Web Standards, Third Edition. Berkeley, CA. New Riders.
The viewport you view pages on comes in many sizes. The viewport is not the page. You have to scroll inside the viewport to see the entire page. Setting up the clear difference is going to help understand how background images work.
Top left, top right, bottom left, bottom right and center center can apply to a div, or to the viewport. You position things relative to either. These positions apply to the viewport, or the page.
background-image: url(...), url(...); /* two images if you'd like */
background-attachment: value; /* scroll OR fixed which centers it in the viewport*/
background-position: horizontal vertical; /* replace horizontal with left, center or right - the vertical is optional - default is center, or specify top, center or bottom */
background-repeat: repeat or no-repeat or repeat-y or repeat-x; /* default is top left for no-repeat */
background-size: width height; (unit of measure); OR auto; (maintain aspect ratio); OR cover; (no distortion sizes the image to fill the height and width, some clipping of the image will occur to avoid distorting the image); OR contain; (will have gaps around it to preserve proportion) /* this is the file's properties set in a unit of measure. */
body { /* Four corner images and one background image repeated */
background-image:
url (thefile/imagecorner1.png),
url (thefile/imagecorner2.png),
url (thefile/imagecorner3.png),
url (thefile/imagecorner4.png),
url (thefile/background.png);
/* Their positions followed by a comma */
top left,
top right,
bottom left,
bottom right,
top left;
/* How each repeats */
background-repeat:
no-repeat,
no-repeat,
no-repeat,
no-repeat,
repeat;
background-attachment: fixed;
background-color: #ff0072;
It all happens in the CSS....
The syntax for the shorthand property to specify the different stylistic values on a single line using spaces to separate the values:
background: url (path) position / size repeat-style attachment color; /* the syntax */
background: url (path) center / contain no-repeat fixed black; /* an example */
Remember:
It is a good idea to reduce the load for small device users by serving up a smaller images, and using @media queries to serve up larger images. The simplest way would be using the following:
/* for width smaller than 400px; */
body {
background-image: url(img_smallimage.jpg');
}
/* for width 400px and larger: */
@media only screen and (min-width: 400px) {
body {
background-image: url('img_largerimage.jpg');
}
}
It is vital to reduce the load and page speed for mobile device users. This is just one aspect of speeding up a web page, but is a tremendous gain.
For more information about Responsive Web Design - Images, visit www.w3schools.com
You can now use a color name instead of hex code for 140 web colors. This list will undoubtedly grow.
Virtually all modern screens can show at least 16.7 million colors, and CSS provides several ways to define all those colors. The most common method of defining colors is to use a hex code. This allows you to define a color using three pairs of hexadecimal numbers representing red, green and blue. A zero indicates none of that color. An ff indicates that color at full strength. Example: #000000 is black - none of any color; #ffffff is full white - full strength of every color; #ff0000 is red - full strength, no other color; #00ff00 is green - no red, full strength green, no blue.
You can also use a three-digit shorthand syntax to express colors where each pair of digits has matching characters. The browser actually doubles each of the digits to translate to six digits. Example: #000 is short for #000000; #0f0 is short for #00ff00. The letters aren't case-sensitive, so you can use uppercase or lowercase.
RGB is another way to express any of the 16.7 million colors. Like hex, you define a color using a combination of red, green, and blue, but you use the 255 decimal range of 0 to 255, and you don't need the # character. The syntax used is rgb(red,green,blue). You replace the red, green, and blue each with a whole number in the range of 0-255 to indicate the amount of that color. Or, optionally, each number can be a percent in the range of 0% to 100%. You can't mix percent and numbers though. Example: rgb(0,0,0) is black, and it is the same as saying rgb(0%,0%,0%) or hex code #000! There is no technical advantage or disadvantage to any particular method, it's your call.
Another way to express any of the 16.7 million colors available to you is Hue, Saturation, and Lightness (HSL) which is based on the concept of a hypothetical color cylinder. The syntax for expressing color using HSL is hsl(hue, saturation, brightness).
Hue is the basic colors of the rainbow, and all the colors circle the hypothetical cylinder. The cylinder is round, so 360 degrees around. Red is at 0 degrees, green is at 120 degrees, blue is at 240 degrees. At exactly 360 degrees, it goes back full circle to red.
Saturation increases as you move out from the center of the cylinder. It is how much of the color there is. Picture a bottle of perfectly red ink. That would be 100% saturation, near the outside of the cylinder. Take a drop of that ink and drop it into a glass of clear water. It's red, but it is at a low saturation, maybe 1%, near the inside of the cylinder.
Lightness is how much light is hitting the color. No light is 0 (zero) and would render it black near the bottom of the cylinder. Too much light (100) would render white at the top of that imaginary cylinder.
So looking at hsl(hue, saturation, brightness), you replace hue with hue expressed as a number indicating degrees around the cylinder with red at 0 (zero), green at 120, and blue at 240. You can use any number in the range of 0 to 360. You can express saturation as a number the range of 0% (no saturation) to 100% (full saturation). Lightness, too, ranges from 0% (totally dark) to 100% (totally light) with 50% being the standard lighting.
It is important to keep in mind that hex, RGB, and HSL are just different ways of expressing the same 16.7 million colors. There is no right way or better way. It is up to you, the developer.
Translucent color expression is made using rgb() or hsl() coloring methods and using a fourth value for opacity.
Opacity, or transparency, and translucency all describe how much you can see through something. The syntax for transparency is rgba(red, green, blue, opacity) or hsla(hue, saturation, lightness, opacity). The "a" stands for alpha transparency. The opacity value is new to CSS3 so some older browsers won't handle them correctly. You will want to set a background color as the default for the older browsers followed by the hsla() or rgba() values, including the opacity value. The newer browsers will read the second value in this statement:
#wrapper {
background: white;
background: rgba(255,255,255,.8);
}
The opacity value is a number between .01 to .99 - the larger the number, the more opaque the color. Zero is no opacity (transparent) and 1 is opaque.
Opacity property
The opacity property also has the syntax opacity: value;. The value can be any number in the range of 0 to 1 where 0 is totally transparent and 1 is opaque. This property is great because is applies to images and entire containing elements!
<td style="opacity: .1"> <image src="images/felix.jpg" alt="felix the cat" /> </td>
You can give each cell its own opacity value using an inline style. You can have elements on a page that are completely invisible by using the syntax visibility: value; with either hidden or visible for the value. It still takes up the space although it is not visible.
Use the syntax display: none; if you want to remove an element from the flow entirely. Use display: block; to make it visible.
By default, block elements are however tall they need to be to contain their content.
As the web evolves we are offered advances in many ways, and color is one. Staying abreast of all enhancements is advised. Wikipedia has more of the latest information at Wikipedia Web Colors.