The source code

    /**
     * @ignore
     * render aria from menu according to current menuitem
     * @author yiminghe@gmail.com
     */
    KISSY.add("menu/menu-render", function(S, Component) {

        return Component.Render.extend({

            renderUI:function() {
                var el = this.get("el");
                el .attr("role", "menu")
                    .attr("aria-haspopup", true);
                if (!el.attr("id")) {
                    el.attr("id", S.guid("ks-menu"));
                }
            },

            _onSetActiveItem:function(v) {
                var el = this.get("el");
                if (v) {
                    var menuItemEl = v.get("el"),
                        id = menuItemEl.attr("id");
                    el.attr("aria-activedescendant", id);
                    // 会打印重复 ，每个子菜单都会打印，然后冒泡至父菜单，再打印，和该 menuitem 所处层次有关系
                    //S.log("menu-render :" + el.attr("id") + " _onSetActiveItem : " + v.get("content"));
                } else {
                    el.attr("aria-activedescendant", "");
                    //S.log("menu-render :" + el.attr("id") + " _onSetActiveItem : " + "");
                }
            },

            containsElement:function(element) {
                var el = this.get("el");
                return el[0] === element || el.contains(element);
            }
        }, {
            ATTRS:{
                activeItem:{}
            }
        });
    }, {
        requires:['component/base']
    });