SlideShare a Scribd company logo
1 of 51
Download to read offline
HTML Elements
  Standards


         by: Tiago Cardoso
Why bother? I can still do it
● I can do it all with client-side handling

● Every element is standard-natively clickable

● Prevent any native handling in every custom
  element event scripting (e.preventDefault...)

● it only works with javascript in some cases.
Well, you kinda should bother!
● Yahoo: 2% of their users are jscript-disabled

● Statistics don't tell whole story: No-js-users
  can't reach all pages in only-javascript
  websites and tend not to come back if
  nothing works.
● Browser native styling for elements.

● Screen readers, Mobile Devices, etc...
  devices with other user inputs. Semantics
  very important.

● Focusable elements (tabindex does not
  solve it all)

● Navigable through keyboard tab key.
● Specific events. ex: visited/clicked/etc.... for
  anchor tags.

● - anchor tags get crawled, button tags do not
  ("nofollow" rule is not followed 100%)
Part 1
Anchor Tags and Buttons
Elements
Anchor Tag: <a ....></a>

Button Tag: <button>....</button>

Input Submit: <input type="submit"/>

Input Button: <input type="button"/>
<a href=#a> The Anchor Tag </a>
●    A link is a connection from one Web resource to another.
●    The link starts at the "source" anchor and points to the "destination"
     anchor, which may be any Web resource (e.g., an image, a video clip, a
     sound bite, a program, an HTML document, an element within an HTML
     document, etc.)


x.html                                          c.html


<a href="#b">..</a>                               <html....>
                                                  ...



<a id="b" href="c.html"
>...</a>
<button> The Button Tag </button>
● form inner element

● Defines a push button, submission of form.

● Inside the element you can put content, like
  text or images.
<input type=submit value=Submit/>
● form inner element

● Defines a button for submission of form.

● Label of the button is defined by its value
  attribute. No option to change background
  image natively.
<input type=button value=but /input>

● form inner element

● The input buttons represents a button in a
  form with no default behavior.

● Input buttons and input submits are styled
  similarly (the same difficulties, therefore).

● Typically associated to client-side behaviour.
Conclusion

Links vs. buttons

- Links must never change state, while buttons could potentially change state.

- similar to RESTful semantics; GET vs. POST/PUT/DELETE
Use case: the post action links



             Like/Comment/Share
Use case: the post action links


              like
Use case: the post action links



            comment
Use case: the post action links



             share
Use case: the post action links


     like
Use case: the post action links


    comment
Use case: the post action links


     share
Semantic Analysis
Like Action

Adds a new “Like/Follower” to a post -> changes state in the server.

Comment Action

Makes the comment form visible to the client -> client side flickering.

Share Action

Facebook: Opens a pop-up form
Restorm: Loads an inline form
Use case: the post action links
           semantic match




               3-1
Questions?


Possible Topics:

● discuss the nofollow attribute;

● web-crawling implications in our HTML documents;
End of Part 1
Part Deux
Form Elements
Intro
● Design and Appearance decisions sometimes drive the
  Architectural Design.

● Clients sometimes (most of times?) base their requisites
  on something they saw, like how it looked, but don't
  know what it does. Developers tend to sometimes follow
  that lead.



           Should it be the other way round?
                  Is there a balance?
Why you should use?          (form elements)



● No need to provide script that handles
  functionality

● Works for JS and no-JS forms ( <3 )

● All reasons described in Part 1 that apply to
  them
Why would you run away from it?
● Form native elements are usually hard to
  style.

● Cross-browser styling on top of that (<3 your
  IEs)




(please interrupt me if you have something to add to this list)
Radio Buttons and Checkboxes
Radio Buttons:
   - used for selection of an item from a list of items.

Checkboxes:
   - used for selection of multiple items from a list of items.

checked: Gives the default checkedness of the input element.
name: Gives the name of the input element.
required: When specified, the element is required.
value: Gives the default value of the input element.
Radio Buttons and Checkboxes
Issues:

● how to style them like tag buttons?

● how to make the radio/checkboxes
  disappear and leave only the label?

● And how to make them work in every used
  browser?
Use case - Rightclearing
The Tags




 ● Multiple selection of items, orthodoxly represented by
   checkboxes;
 ● styling concerns led to the decision of implementing
   them with anchor tags supported by an hidden input
   field and a javascript plugin;
Use case - Rightclearing
Pros:
● looks really good in all of the supported browsers!
Cons:
● a lot of client-side scripting (the better part of a custom
    plugin of ours) was written to simulate part of the
    behaviour that the checkbox natively provides.
●   non-focusable, does not respond to keyboard events
    (no mouse, no fun. could be part of the plugin
    mentioned above, but it would just bloat it).
●   javascript-dependent, main reason why the RC search
    doesn’t work without script (correct me if I’m wrong).
LET THE BROWSER WARS BEGIN!
standard css:



.genres {                                      div, span, applet, object, iframe, h1, h2,
  border: medium none;                         h3, h4, h5, h6, p {
  border-radius: 0 0 3px 3px;                    background: none repeat scroll 0 0
  float: left;                                 transparent;
  margin: 0;                                     border: 0 none;
  padding: 5px;                                  font-size: 100%;
  display: inline-block;                         margin: 0;
  vertical-align: middle;                        outline: 0 none;
   background: url("http://www.                  padding: 0;
rightclearing.com/images/rightclearing/blue.     vertical-align: baseline;
png?54f75c7") repeat scroll 0 0 transparent;   }
   margin-right: 0;
}
Tryout 1: Anchor Tag Tags                                                                              (present)

                                                            a {
HTML:                                                         border: 1px solid rgba(33, 33, 38, 0.55);
                                                              color: rgba(33, 33, 38, 0.9);
                                                              cursor: pointer;
                                                              float: left;
                                                              font-size: 13px;
<div class="genres">                                          font-weight: normal;
                                                              line-height: 24px;
    <a href="#" data-value="2" class="genres_2">              margin: 0 0 3px 3px;
                                                              position: relative;
          <div class="left"></div>                            white-space: nowrap;
                                                              border: medium none;
          <div class="center">                                opacity: 1;
                                                              background: none repeat scroll 0 0 transparent;
                                                              border: 0 none;
                <span class="tag_text">Alternative</span>     font-size: 100%;
                                                              outline: 0 none;
          </div>                                              vertical-align: baseline;
                                                              text-decoration: none;
          <div class="right"></div>                         }
                                                            .left {
    </a>                                                      border-radius: 3px 0 0 3px;
                                                              width: 5px;
    <a href="#" data-value="3" class="genres_3 selected">   }
                                                            .right {
          <div class="left"></div>                            border-radius: 0 3px 3px 0;
                                                              width: 5px;
                                                            }
          <div class="center">                              a:hover {
                                                                color: #0096E6;
                <span class="tag_text">Rock</span>              text-shadow: 0 0 4px rgba(0, 150, 230, 0.4);
                                                            }
          </div>                                            a:hover > div {
                                                              background: none repeat scroll 0 0 #0096E6;
          <div class="right"></div>                           color: #FFFFFF;
                                                              text-shadow: 0 0 2px rgba(255, 255, 255, 0.6);
    </a>                                                    }
                                                            a.selected {
</div>                                                                 background: url("http://www.rightclearing.com/images/rightclearing/blue.png?
                                                            54f75c7") repeat scroll 0 0 transparent;
                                                            }




CSS:
a div {
  display: inline-block;
  float: left;
  height: 24px !important;
  color: #FFFFFF;
}
Anchor Tag Tags: Output

Firefox
Anchor Tag Tags: Output

Firefox

Chrome
Anchor Tag Tags: Output

Firefox

Chrome

Opera
Anchor Tag Tags: Output

Firefox

Chrome

Opera

IE9
Anchor Tag Tags: Output

Firefox

Chrome

Opera

IE9

IE8
Anchor Tag Tags: Output

Firefox

Chrome

Opera

IE9

IE8

IE7
Tryout Deux: Checkbox Tags                                                                                (future?)



HTML:                                                CSS:
                                                     label {
                                                       border: 1px solid rgba(33, 33, 38, 0.55);
                                                       color: rgba(33, 33, 38, 0.9);
<div class="genres">                                   cursor: pointer;
                                                       float: left;
  <label>                                              font-size: 13px;
                                                       font-weight: normal;
      <input type="checkbox" name="search[genres]"     line-height: 24px;
                                                       margin: 0 0 3px 3px;
value="2">                                             position: relative;
                                                       white-space: nowrap;
      <div class="title">                              border: medium none;
                                                       opacity: 1;
            Alternative                                background: none repeat scroll 0 0 transparent;
                                                       border: 0 none;
      </div>                                           font-size: 100%;
                                                       outline: 0 none;
  </label>                                             vertical-align: baseline;
                                                     }
   <label>
                                                     .title:hover {
      <input type="checkbox" name="search[genres]"      background: none repeat scroll 0 0 #00AAFA;
value="3">                                              color: #FFFFFF;
                                                        text-shadow: 0 0 2px rgba(255, 255, 255, 0.6);
      <div class="title">                            }

                                                     :root input {
            Rock                                       position: absolute;
                                                       clip: rect(0,0,0,0);
      </div>                                         }

  </label>                                           .title {
                                                        display: inline-block;
</div>                                                  *display: inline;
                                                        border-radius: 3px;
                                                        padding: 0 5px;
                                                     }

                                                     input:checked + .title {

                                                         background: none repeat scroll 0 0 #0096E6;
                                                         color: #FFFFFF;
                                                         text-shadow: 0 0 2px rgba(255, 255, 255, 0.6);
                                                     }
Checkbox Tags: Output

Firefox
Checkbox Tags: Output

Firefox

Chrome
Checkbox Tags: Output

Firefox

Chrome

Opera
Checkbox Tags: Output

Firefox

Chrome

Opera

IE9
Checkbox Tags: Output

Firefox

Chrome

Opera

IE9

IE8
Checkbox Tags: Output

Firefox

Chrome

Opera

IE9

IE8

IE7
Checkbox Tags: Output

Firefox

Chrome

Opera

IE9

IE8

IE7

Safari
 (it will work in IE 10)
Conclusions

Appearance

1 - Everything looks good.   (unsupported css features in the IE <=9, like border-radius and text-shadow)


2 - Everything looks at least functional. Graceful
Degradation.

Functionality

1 - Works with javascript.
2 - Works. point.
Appearance over Functionality
               or
Functionality over Appearance?
Questions?
Possible Topics:

● Why doesn’t the checkbox disappear in the IEs 8-?
(hint: IE is evil)
References
http://developer.yahoo.com/blogs/ydn/posts/2010/10/how-many-users-have-javascript-disabled/
http://www.w3.org/TR/html401/struct/links.html
http://www.w3schools.com/tags/tag_button.asp
http://discuss.joelonsoftware.com/default.asp?design.4.541972.17
http://www.w3.org/wiki/HTML/Elements/input/submit
http://www.w3.org/wiki/HTML/Elements/input/button
http://www.w3.org/wiki/HTML/Elements/input/radio
http://www.w3.org/wiki/HTML/Elements/input/checkbox
http://jsfiddle.net/
http://lea.verou.me/2011/05/rule-filtering-based-on-specific-selectors-support/
http://yfrog.com/h7ja8ep

More Related Content

What's hot

モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える拓樹 谷
 
HTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile Event
HTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile EventHTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile Event
HTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile EventRobert Nyman
 
HTML5 and CSS3 – exploring mobile possibilities - Frontend Conference Zürich
HTML5 and CSS3 – exploring mobile possibilities - Frontend Conference ZürichHTML5 and CSS3 – exploring mobile possibilities - Frontend Conference Zürich
HTML5 and CSS3 – exploring mobile possibilities - Frontend Conference ZürichRobert Nyman
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive WebsitesJoe Seifi
 
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat adin sonsuz
 

What's hot (8)

Presentation 2
Presentation 2Presentation 2
Presentation 2
 
Tmx9
Tmx9Tmx9
Tmx9
 
モダンなCSS設計パターンを考える
モダンなCSS設計パターンを考えるモダンなCSS設計パターンを考える
モダンなCSS設計パターンを考える
 
This is a test
This is a testThis is a test
This is a test
 
HTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile Event
HTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile EventHTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile Event
HTML5 and CSS3: Exploring Mobile Possibilities - London Ajax Mobile Event
 
HTML5 and CSS3 – exploring mobile possibilities - Frontend Conference Zürich
HTML5 and CSS3 – exploring mobile possibilities - Frontend Conference ZürichHTML5 and CSS3 – exploring mobile possibilities - Frontend Conference Zürich
HTML5 and CSS3 – exploring mobile possibilities - Frontend Conference Zürich
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
Yeşilbayır antika kol saati 0531 9810190 eski kurmalı saat
 

Similar to Html standards presentation

Source Code Halaman Web Radio Stremaing [RAMEN RADIO]
Source Code Halaman Web Radio Stremaing [RAMEN RADIO]Source Code Halaman Web Radio Stremaing [RAMEN RADIO]
Source Code Halaman Web Radio Stremaing [RAMEN RADIO]Rizki Ogawa
 
Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...
Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...
Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...RobotDeathSquad
 
Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000
Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000
Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000tidwellerin392
 
Making Links Magical Again with CSS
Making Links Magical Again with CSSMaking Links Magical Again with CSS
Making Links Magical Again with CSSJenn Lukas
 
Mobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive NewsMobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive NewsKaelig Deloumeau-Prigent
 
Learn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day DeutschlandLearn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day DeutschlandThemePartner
 
Learn to Love CSS3 [English]
Learn to Love CSS3 [English]Learn to Love CSS3 [English]
Learn to Love CSS3 [English]ThemePartner
 
LessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingLessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingMyles Braithwaite
 
Class 3 create an absolute layout with css abs position (aptana)
Class 3  create an absolute layout with css abs position (aptana)Class 3  create an absolute layout with css abs position (aptana)
Class 3 create an absolute layout with css abs position (aptana)Erin M. Kidwell
 
cssblocks.css.b_page{ width 930px; margin 0 auto; position.docx
cssblocks.css.b_page{ width 930px; margin 0 auto; position.docxcssblocks.css.b_page{ width 930px; margin 0 auto; position.docx
cssblocks.css.b_page{ width 930px; margin 0 auto; position.docxfaithxdunce63732
 
Rapid Prototyping
Rapid PrototypingRapid Prototyping
Rapid PrototypingEven Wu
 
PreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 TricksPreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 Tricksincidentist
 
Blog skins396734
Blog skins396734Blog skins396734
Blog skins396734pantangmrny
 
pasangh bendera di blog
pasangh bendera di blogpasangh bendera di blog
pasangh bendera di blogellyndra
 

Similar to Html standards presentation (20)

Source Code Halaman Web Radio Stremaing [RAMEN RADIO]
Source Code Halaman Web Radio Stremaing [RAMEN RADIO]Source Code Halaman Web Radio Stremaing [RAMEN RADIO]
Source Code Halaman Web Radio Stremaing [RAMEN RADIO]
 
Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...
Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...
Dr. Strangelove or: How I learned to stop worrying and love HTML, CSS and Jav...
 
Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000
Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000
Version1.0 StartHTML000000217 EndHTML000067516 StartFragment0000
 
Cloudstack UI Customization
Cloudstack UI CustomizationCloudstack UI Customization
Cloudstack UI Customization
 
Making Links Magical Again with CSS
Making Links Magical Again with CSSMaking Links Magical Again with CSS
Making Links Magical Again with CSS
 
Think Vitamin CSS
Think Vitamin CSSThink Vitamin CSS
Think Vitamin CSS
 
Mobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive NewsMobile-first OOCSS, Sass & Compass at BBC Responsive News
Mobile-first OOCSS, Sass & Compass at BBC Responsive News
 
Learn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day DeutschlandLearn to love CSS3 | Joomla! Day Deutschland
Learn to love CSS3 | Joomla! Day Deutschland
 
Webtech File.docx
Webtech File.docxWebtech File.docx
Webtech File.docx
 
Learn to Love CSS3 [English]
Learn to Love CSS3 [English]Learn to Love CSS3 [English]
Learn to Love CSS3 [English]
 
LessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG MeetingLessCSS Presentation @ April 2015 GTALUG Meeting
LessCSS Presentation @ April 2015 GTALUG Meeting
 
Css tips & tricks
Css tips & tricksCss tips & tricks
Css tips & tricks
 
Class 3 create an absolute layout with css abs position (aptana)
Class 3  create an absolute layout with css abs position (aptana)Class 3  create an absolute layout with css abs position (aptana)
Class 3 create an absolute layout with css abs position (aptana)
 
Sass compass
Sass compassSass compass
Sass compass
 
cssblocks.css.b_page{ width 930px; margin 0 auto; position.docx
cssblocks.css.b_page{ width 930px; margin 0 auto; position.docxcssblocks.css.b_page{ width 930px; margin 0 auto; position.docx
cssblocks.css.b_page{ width 930px; margin 0 auto; position.docx
 
CSS and CSS3
CSS and CSS3CSS and CSS3
CSS and CSS3
 
Rapid Prototyping
Rapid PrototypingRapid Prototyping
Rapid Prototyping
 
PreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 TricksPreDevCampSF - CSS3 Tricks
PreDevCampSF - CSS3 Tricks
 
Blog skins396734
Blog skins396734Blog skins396734
Blog skins396734
 
pasangh bendera di blog
pasangh bendera di blogpasangh bendera di blog
pasangh bendera di blog
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 

Recently uploaded (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Html standards presentation

  • 1. HTML Elements Standards by: Tiago Cardoso
  • 2. Why bother? I can still do it ● I can do it all with client-side handling ● Every element is standard-natively clickable ● Prevent any native handling in every custom element event scripting (e.preventDefault...) ● it only works with javascript in some cases.
  • 3. Well, you kinda should bother! ● Yahoo: 2% of their users are jscript-disabled ● Statistics don't tell whole story: No-js-users can't reach all pages in only-javascript websites and tend not to come back if nothing works.
  • 4. ● Browser native styling for elements. ● Screen readers, Mobile Devices, etc... devices with other user inputs. Semantics very important. ● Focusable elements (tabindex does not solve it all) ● Navigable through keyboard tab key.
  • 5. ● Specific events. ex: visited/clicked/etc.... for anchor tags. ● - anchor tags get crawled, button tags do not ("nofollow" rule is not followed 100%)
  • 6. Part 1 Anchor Tags and Buttons
  • 7. Elements Anchor Tag: <a ....></a> Button Tag: <button>....</button> Input Submit: <input type="submit"/> Input Button: <input type="button"/>
  • 8. <a href=#a> The Anchor Tag </a> ● A link is a connection from one Web resource to another. ● The link starts at the "source" anchor and points to the "destination" anchor, which may be any Web resource (e.g., an image, a video clip, a sound bite, a program, an HTML document, an element within an HTML document, etc.) x.html c.html <a href="#b">..</a> <html....> ... <a id="b" href="c.html" >...</a>
  • 9. <button> The Button Tag </button> ● form inner element ● Defines a push button, submission of form. ● Inside the element you can put content, like text or images.
  • 10. <input type=submit value=Submit/> ● form inner element ● Defines a button for submission of form. ● Label of the button is defined by its value attribute. No option to change background image natively.
  • 11. <input type=button value=but /input> ● form inner element ● The input buttons represents a button in a form with no default behavior. ● Input buttons and input submits are styled similarly (the same difficulties, therefore). ● Typically associated to client-side behaviour.
  • 12. Conclusion Links vs. buttons - Links must never change state, while buttons could potentially change state. - similar to RESTful semantics; GET vs. POST/PUT/DELETE
  • 13. Use case: the post action links Like/Comment/Share
  • 14. Use case: the post action links like
  • 15. Use case: the post action links comment
  • 16. Use case: the post action links share
  • 17. Use case: the post action links like
  • 18. Use case: the post action links comment
  • 19. Use case: the post action links share
  • 20. Semantic Analysis Like Action Adds a new “Like/Follower” to a post -> changes state in the server. Comment Action Makes the comment form visible to the client -> client side flickering. Share Action Facebook: Opens a pop-up form Restorm: Loads an inline form
  • 21. Use case: the post action links semantic match 3-1
  • 22. Questions? Possible Topics: ● discuss the nofollow attribute; ● web-crawling implications in our HTML documents;
  • 25. Intro ● Design and Appearance decisions sometimes drive the Architectural Design. ● Clients sometimes (most of times?) base their requisites on something they saw, like how it looked, but don't know what it does. Developers tend to sometimes follow that lead. Should it be the other way round? Is there a balance?
  • 26. Why you should use? (form elements) ● No need to provide script that handles functionality ● Works for JS and no-JS forms ( <3 ) ● All reasons described in Part 1 that apply to them
  • 27. Why would you run away from it? ● Form native elements are usually hard to style. ● Cross-browser styling on top of that (<3 your IEs) (please interrupt me if you have something to add to this list)
  • 28. Radio Buttons and Checkboxes Radio Buttons: - used for selection of an item from a list of items. Checkboxes: - used for selection of multiple items from a list of items. checked: Gives the default checkedness of the input element. name: Gives the name of the input element. required: When specified, the element is required. value: Gives the default value of the input element.
  • 29. Radio Buttons and Checkboxes Issues: ● how to style them like tag buttons? ● how to make the radio/checkboxes disappear and leave only the label? ● And how to make them work in every used browser?
  • 30. Use case - Rightclearing The Tags ● Multiple selection of items, orthodoxly represented by checkboxes; ● styling concerns led to the decision of implementing them with anchor tags supported by an hidden input field and a javascript plugin;
  • 31. Use case - Rightclearing Pros: ● looks really good in all of the supported browsers! Cons: ● a lot of client-side scripting (the better part of a custom plugin of ours) was written to simulate part of the behaviour that the checkbox natively provides. ● non-focusable, does not respond to keyboard events (no mouse, no fun. could be part of the plugin mentioned above, but it would just bloat it). ● javascript-dependent, main reason why the RC search doesn’t work without script (correct me if I’m wrong).
  • 32. LET THE BROWSER WARS BEGIN! standard css: .genres { div, span, applet, object, iframe, h1, h2, border: medium none; h3, h4, h5, h6, p { border-radius: 0 0 3px 3px; background: none repeat scroll 0 0 float: left; transparent; margin: 0; border: 0 none; padding: 5px; font-size: 100%; display: inline-block; margin: 0; vertical-align: middle; outline: 0 none; background: url("http://www. padding: 0; rightclearing.com/images/rightclearing/blue. vertical-align: baseline; png?54f75c7") repeat scroll 0 0 transparent; } margin-right: 0; }
  • 33. Tryout 1: Anchor Tag Tags (present) a { HTML: border: 1px solid rgba(33, 33, 38, 0.55); color: rgba(33, 33, 38, 0.9); cursor: pointer; float: left; font-size: 13px; <div class="genres"> font-weight: normal; line-height: 24px; <a href="#" data-value="2" class="genres_2"> margin: 0 0 3px 3px; position: relative; <div class="left"></div> white-space: nowrap; border: medium none; <div class="center"> opacity: 1; background: none repeat scroll 0 0 transparent; border: 0 none; <span class="tag_text">Alternative</span> font-size: 100%; outline: 0 none; </div> vertical-align: baseline; text-decoration: none; <div class="right"></div> } .left { </a> border-radius: 3px 0 0 3px; width: 5px; <a href="#" data-value="3" class="genres_3 selected"> } .right { <div class="left"></div> border-radius: 0 3px 3px 0; width: 5px; } <div class="center"> a:hover { color: #0096E6; <span class="tag_text">Rock</span> text-shadow: 0 0 4px rgba(0, 150, 230, 0.4); } </div> a:hover > div { background: none repeat scroll 0 0 #0096E6; <div class="right"></div> color: #FFFFFF; text-shadow: 0 0 2px rgba(255, 255, 255, 0.6); </a> } a.selected { </div> background: url("http://www.rightclearing.com/images/rightclearing/blue.png? 54f75c7") repeat scroll 0 0 transparent; } CSS: a div { display: inline-block; float: left; height: 24px !important; color: #FFFFFF; }
  • 34. Anchor Tag Tags: Output Firefox
  • 35. Anchor Tag Tags: Output Firefox Chrome
  • 36. Anchor Tag Tags: Output Firefox Chrome Opera
  • 37. Anchor Tag Tags: Output Firefox Chrome Opera IE9
  • 38. Anchor Tag Tags: Output Firefox Chrome Opera IE9 IE8
  • 39. Anchor Tag Tags: Output Firefox Chrome Opera IE9 IE8 IE7
  • 40. Tryout Deux: Checkbox Tags (future?) HTML: CSS: label { border: 1px solid rgba(33, 33, 38, 0.55); color: rgba(33, 33, 38, 0.9); <div class="genres"> cursor: pointer; float: left; <label> font-size: 13px; font-weight: normal; <input type="checkbox" name="search[genres]" line-height: 24px; margin: 0 0 3px 3px; value="2"> position: relative; white-space: nowrap; <div class="title"> border: medium none; opacity: 1; Alternative background: none repeat scroll 0 0 transparent; border: 0 none; </div> font-size: 100%; outline: 0 none; </label> vertical-align: baseline; } <label> .title:hover { <input type="checkbox" name="search[genres]" background: none repeat scroll 0 0 #00AAFA; value="3"> color: #FFFFFF; text-shadow: 0 0 2px rgba(255, 255, 255, 0.6); <div class="title"> } :root input { Rock position: absolute; clip: rect(0,0,0,0); </div> } </label> .title { display: inline-block; </div> *display: inline; border-radius: 3px; padding: 0 5px; } input:checked + .title { background: none repeat scroll 0 0 #0096E6; color: #FFFFFF; text-shadow: 0 0 2px rgba(255, 255, 255, 0.6); }
  • 48. Conclusions Appearance 1 - Everything looks good. (unsupported css features in the IE <=9, like border-radius and text-shadow) 2 - Everything looks at least functional. Graceful Degradation. Functionality 1 - Works with javascript. 2 - Works. point.
  • 49. Appearance over Functionality or Functionality over Appearance?
  • 50. Questions? Possible Topics: ● Why doesn’t the checkbox disappear in the IEs 8-? (hint: IE is evil)