Warning: The contextmenu attribute is obsolete and will be removed from all browsers

The contextmenu global attribute is the id of a <menu> to use as the contextual menu for this element.

A context menu is a menu that appears upon user interaction, such as a right-click. HTML now allows us to customize this menu. Here are some implementation examples, including nested menus.



<body contextmenu="share">
  <menu type="context" id="share">
    <menu label="share">
      <menuitem label="Twitter" onclick="shareViaTwitter()"></menuitem>
      <menuitem label="Facebook" onclick="shareViaFacebook()"></menuitem>
      Anywhere in the example you can share the page on Twitter and
      Facebook using the Share menu from your context menu.
    <li contextmenu="changeFont" id="fontSizing">
      On this specific list element, you can change the size of the text
      by using the "Increase/Decrease font" actions from your context menu
    <menu type="context" id="changeFont">
      <menuitem label="Increase Font" onclick="incFont()"></menuitem>
      <menuitem label="Decrease Font" onclick="decFont()"></menuitem>
    <li contextmenu="ChangeImage" id="changeImage">
      On the image below, you can fire the "Change Image" action
      in your Context Menu.<br />
      <img src="promobutton_mdn5.png"
          contextmenu="ChangeImage" id="promoButton" />
      <menu type="context" id="ChangeImage">
        <menuitem label="Change Image" onclick="changeImage()"></menuitem>


function shareViaTwitter() {"" +
      "Hurray! I am learning ContextMenu from MDN via Mozilla");

function shareViaFacebook() {"" +

function incFont() {
  document.getElementById("fontSizing").style.fontSize = "larger";

function decFont() {
  document.getElementById("fontSizing").style.fontSize = "smaller";

function changeImage() {
  const index = Math.ceil(Math.random() * 39 + 1);
  document.images[0].src = `${index}.png`;



The contextmenu attribute is obsolete and will be removed from all browsers.

Browser compatibility

BCD tables only load in the browser

See also