title: Creating shiny outputs from custom html inputs
body: <p>Why is the <code>observeEvent()</code> not getting triggered when i use <code>tags$button</code> with a corresponding id, but it is when i use <code>actionButton</code> with an inputId. Where is the difference and how can i make my custom html <code>tags$button</code> to be an actual &quot;event&quot;?</p>
  <p>This does not work:</p>
  <pre><code>library(shiny)
  if (interactive()) {
    options(device.ask.default = FALSE)
    
    ui = fluidPage(
      
      tags$button(id = &quot;action&quot;, &quot;BTN&quot;),
      plotOutput(outputId = &quot;plot&quot;))    
    
    server = function(input, output, session){
      
      observeEvent(input$action, {
        
        output$plot = renderPlot({
          hist(iris$Sepal.Length)})
      })
    }
    shinyApp(ui, server)
  }
  </code></pre>
  <p>This does:</p>
  <pre><code>library(shiny)
  if (interactive()) {
    options(device.ask.default = FALSE)
    
    ui = fluidPage(
      
      actionButton(inputId = &quot;action&quot;, label = &quot;BTN&quot;),
      plotOutput(outputId = &quot;plot&quot;))    
    
    server = function(input, output, session){
      
      observeEvent(input$action, {
        
        output$plot = renderPlot({
          hist(iris$Sepal.Length)})
      })
    }
    shinyApp(ui, server)
  }
  </code></pre>