/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * The origin of this IDL file is
 * http://www.w3.org/TR/SVG2/
 *
 * Copyright © 2012 W3C® (MIT, ERCIM, Keio), All Rights Reserved. W3C
 * liability, trademark and document use rules apply.
 */

interface SVGAElement : SVGGraphicsElement {
  readonly attribute SVGAnimatedString target;

  [SetterThrows]
  attribute DOMString download;
  [SetterThrows]
  attribute DOMString ping;
  [SetterThrows]
  attribute DOMString rel;
  [SetterThrows]
  attribute DOMString referrerPolicy;
  [PutForwards=value]
  readonly attribute DOMTokenList relList;
  [SetterThrows]
  attribute DOMString hreflang;
  [SetterThrows]
  attribute DOMString type;

  [Throws]
  attribute DOMString text;
};

SVGAElement includes SVGURIReference;
