Community detection is a fundamental problem in social network analysis consisting, roughly speaking, in dividing social actors (modelled as nodes in a social graph) with certain social connections (modelled as edges in the social graph) into densely knitted and highly related groups with each group well separated from the others. Classical approaches for community detection usually deal only with the structure of the network and ignore features of the nodes, although major real-world networks provide additional actors' information such as age, gender, interests, etc., traditionally called node attributes. It is known that the attributes may clarify and enrich the knowledge about the actors and give sense to the detected communities. This has led to a relatively novel direction in community detection --- constructing algorithms that use both the structure and the attributes of the network (modelled already via a node-attributed graph) to yield more informative and qualitative results. During the last decade many methods based on different ideas and techniques have appeared in this direction. Although there exist some partial overviews of them, a recent survey is a necessity as the growing number of the methods may cause uncertainty in practice. In this paper we aim at clarifying the overall situation by proposing a clear classification of the methods and providing a comprehensive survey of the available results. We not only group and analyse the corresponding methods but also focus on practical aspects, including the information which methods outperform others and which datasets and quality measures are used for evaluation.