(function(){  
  "use strict";
  xtag.register("sam-tabbar", {
    lifecycle: {
      created: function() {
        if (!this.role) {
          this.role = "tablist";
        }
      },
      inserted: function() {
        this.activeTabId = this.querySelector("[role='tab'][data-start-active]").id;
      },
      removed: function() {},
      attributeChanged: function() {}
    }, 
    events: { 
      "press": function (event) {
        var el = event.originalTarget,
            eventName = "activeTabPress";
        //Checks if a tab was pressed
        if (!el || el.getAttribute("role") !== "tab") return;
        var tabid = el.id;
        //Checks if the active tab wasn't pressed
        if (this.activeTabId !== tabid) {
          document.getElementById(this.activeTabId).dataset.active = false;
          this.activeTabId = tabid;
          document.getElementById(this.activeTabId).dataset.active = true;
          eventName = "tabChange";
        }
        xtag.fireEvent(this, eventName, {detail: this.activeTabId});
      }
    },
    accessors: {
      role: {
        attribute: {}
      }
    }, 
    methods: {
    
    }
  });

})();

@@ -468,50 +468,8 @@
 rget
-,%0A            eventName = %22activeTabPress%22
 ;%0A  
@@ -578,76 +578,308 @@
     
-var tabid = el.id;%0A        //Checks if the active tab wasn't pressed
+this.setTab(el.id, true);%0A      %7D%0A    %7D,%0A    accessors: %7B%0A      role: %7B%0A        attribute: %7B%7D%0A      %7D%0A    %7D, %0A    methods: %7B%0A      setTab: function (tabid, fireEvent) %7B%0A        var eventName = %22tabChange%22,%0A            result = true;%0A        //Checks if person is trying to set to currently active tab
 %0A   
@@ -904,17 +904,17 @@
 veTabId 
-!
+=
 == tabid
@@ -913,24 +913,106 @@
 == tabid) %7B%0A
+          eventName = %22activeTabPress%22%0A          result = false;%0A        %7D else %7B%0A
           do
@@ -1198,52 +1198,32 @@
     
-  eventName = %22tabChange%22;%0A        %7D%0A       
+%7D%0A        if (fireEvent)
  xta
@@ -1290,105 +1290,30 @@
     
-%7D%0A    %7D,%0A    accessors: %7B%0A      role: %7B%0A        attribute: %7B%7D%0A      %7D%0A    %7D, %0A    methods: %7B%0A    
+  return result;%0A    %7D
 %0A   

Add setTab