Recherche avancée

Médias (0)

Mot : - Tags -/page unique

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (27)

  • Qu’est ce qu’un éditorial

    21 juin 2013, par

    Ecrivez votre de point de vue dans un article. Celui-ci sera rangé dans une rubrique prévue à cet effet.
    Un éditorial est un article de type texte uniquement. Il a pour objectif de ranger les points de vue dans une rubrique dédiée. Un seul éditorial est placé à la une en page d’accueil. Pour consulter les précédents, consultez la rubrique dédiée.
    Vous pouvez personnaliser le formulaire de création d’un éditorial.
    Formulaire de création d’un éditorial Dans le cas d’un document de type éditorial, les (...)

  • Déploiements possibles

    31 janvier 2010, par

    Deux types de déploiements sont envisageable dépendant de deux aspects : La méthode d’installation envisagée (en standalone ou en ferme) ; Le nombre d’encodages journaliers et la fréquentation envisagés ;
    L’encodage de vidéos est un processus lourd consommant énormément de ressources système (CPU et RAM), il est nécessaire de prendre tout cela en considération. Ce système n’est donc possible que sur un ou plusieurs serveurs dédiés.
    Version mono serveur
    La version mono serveur consiste à n’utiliser qu’une (...)

  • MediaSPIP v0.2

    21 juin 2013, par

    MediaSPIP 0.2 is the first MediaSPIP stable release.
    Its official release date is June 21, 2013 and is announced here.
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

Sur d’autres sites (4203)

  • Open .avi with OpenCV 2.4 & Ubuntu 11.04

    25 juin 2012, par CTZStef

    I try to open and read video files in .avi format using OpenCV. Here is my code :

    void MainWindow::on_actionOuvrir_fichier_triggered()
    140    +   {
    141    +    //mettre a -1 streamId
    142    +    streamId = -1;
    143    +    //ouvrir fenetre navigation fichiers pour recuperer path vers .avi
    144    +    QString fileName = QFileDialog::getOpenFileName(this,tr("Ouvrir fichier video"),"/home",
    145    +    tr("Videos (*.avi)"));
    146    +    std::string utf8_text = fileName.toUtf8().constData();
    147    +    //ouvrir .avi
    148    +    capture = new VideoCapture(utf8_text);
    149    +    //check ouverture
    150    +    if(!capture->isOpened())
    151    +    cout << "probleme ouverture fichier video" << endl;
    152    +    //calculer delay between each frame in ms
    153    +    rate = capture->get(CV_CAP_PROP_FPS);
    154    +    delay = 1000 / rate;
    155    +    //demarrer timer recordId
    156    +    recordId = startTimer(delay);
    157    +    //capture premiere frame
    158    +    if(!capture->read(in))
    159    +    cout << "probleme lecture frame fichier video" << endl;
    160    +   }

    I get no problem at compilation time, but I can't open a video file. While in debug mode I saw that string utf8_text had the good absolute path to my video, so obviously the problem comes from the constructor of the VideoCapture object. Then, I tried to install every codec pack I could or thought was relevant. But the problem is still there, capture->isOpened() still returns false, and in debug mode I can see that capture contains nothing.

    I am lost here, don't know what to try next. Any idea ??

    Thanks !!!

    [EDIT]
    Just in case, here is the output of ffmpeg -i myFile.avi

    faraday@faraday-Compaq-Evo-D510-e-pc:~/QtProjects/visionDev$ ffmpeg -i 1.avi
    FFmpeg version 0.6.6-4:0.6.6-0ubuntu0.11.04.1, Copyright (c) 2000-2010 the Libav developers
     built on Jun 12 2012 16:28:21 with gcc 4.5.2
     configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static
     WARNING: library configuration mismatch
     libavutil   configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libavcodec  configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libavformat configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libavdevice configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libavfilter configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libswscale  configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libpostproc configuration: --extra-version=4:0.6.6-0ubuntu0.11.04.1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --enable-libvpx --disable-stripping --enable-runtime-cpudetect --enable-vaapi --enable-gpl --enable-postproc --enable-swscale --enable-x11grab --enable-libdc1394 --shlibdir=/usr/lib/i686/cmov --cpu=i686 --enable-shared --disable-static --disable-ffmpeg --disable-ffplay
     libavutil     50.15. 1 / 50.15. 1
     libavcodec    52.72. 2 / 52.72. 2
     libavformat   52.64. 2 / 52.64. 2
     libavdevice   52. 2. 0 / 52. 2. 0
     libavfilter    1.19. 0 /  1.19. 0
     libswscale     0.11. 0 /  0.11. 0
     libpostproc   51. 2. 0 / 51. 2. 0
    Input #0, avi, from '1.avi':
     Duration: 00:02:35.39, start: 0.000000, bitrate: 110595 kb/s
       Stream #0.0: Video: rawvideo, bgr24, 640x480, 15 tbr, 15 tbn, 15 tbc
    At least one output file must be specified

    I do not see anything wrong here, but I thought maybe someone will.

    I really need this to work soon, and right now it's a dead end...

    thanks

    [EDIT 2]

    I have just read this in the book OpenCV 2 Computer Vision Application Programming Cookbook by R. Laganiere :

    It is important to note that in order to open the specified video
    file, your computer must have the corresponding codec installed,
    otherwise cv::VideoCapture will not be able to understand the input
    file. Normally, if you are able to open your video file with a video
    player on your machine (such as the Windows Media Player), then OpenCV
    should also be able to read this file.

    Well, on my machine it is not that easy mister Laganiere... I hate this book.

  • ffmpeg API h264 encoded video does not play on all platforms

    19 juillet 2012, par TheSHEEEP

    Edit : In the previous version I used a very old ffmpeg API. I now use the newest libraries. The problem has only changed slightly, from "Main" to "High".

    I am using the ffmpeg C API to create a mp4 video in C++.

    I want the resulting video to be of the profile "Constrained Baseline", so that the resulting video can be played on as much platforms as possible, especially mobile, but I get "High" profile every time, even though I hard coded the codec profile to be FF_PROFILE_H264_CONSTRAINED_BASELINE. As a result, the video does not play on all our testing platforms.

    This is what "ffprobe video.mp4 -show_streams" tells about my video streams :

     Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    creation_time   : 1970-01-01 00:00:00
    encoder         : Lavf53.5.0
     Duration: 00:00:13.20, start: 0.000000, bitrate: 553 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p, 320x180,
    424 kb/s, 15 fps, 15 tbr, 15 tbn, 30 tbc
    Metadata:
     creation_time   : 1970-01-01 00:00:00
     handler_name    : VideoHandler
    Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 12
    kb/s
    Metadata:
     creation_time   : 1970-01-01 00:00:00
     handler_name    : SoundHandler
    -------VIDEO STREAM--------
    [STREAM]
    index=0
    codec_name=h264
    codec_long_name=H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

    profile=High <-- This should be "Constrained Baseline"

    codec_type=video
    codec_time_base=1/30
    codec_tag_string=avc1
    codec_tag=0x31637661
    width=320
    height=180
    has_b_frames=0
    sample_aspect_ratio=N/A
    display_aspect_ratio=N/A
    pix_fmt=yuv420p
    level=30
    timecode=N/A
    is_avc=1
    nal_length_size=4
    id=N/A
    r_frame_rate=15/1
    avg_frame_rate=15/1
    time_base=1/15
    start_time=0.000000
    duration=13.200000
    bit_rate=424252
    nb_frames=198
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:creation_time=1970-01-01 00:00:00
    TAG:language=und
    TAG:handler_name=VideoHandler
    [/STREAM]
    -------AUDIO STREAM--------
    [STREAM]
    index=1
    codec_name=aac
    codec_long_name=Advanced Audio Coding
    profile=unknown
    codec_type=audio
    codec_time_base=1/44100
    codec_tag_string=mp4a
    codec_tag=0x6134706d
    sample_fmt=s16
    sample_rate=44100
    channels=2
    bits_per_sample=0
    id=N/A
    r_frame_rate=0/0
    avg_frame_rate=0/0
    time_base=1/44100
    start_time=0.000000
    duration=13.165714
    bit_rate=125301
    nb_frames=567
    nb_read_frames=N/A
    nb_read_packets=N/A
    TAG:creation_time=1970-01-01 00:00:00
    TAG:language=und
    TAG:handler_name=SoundHandler
    [/STREAM]

    This is the function I use to add a video stream. All the values that come from ptr-> are defined from outside, do those values have to be specific values to get the correct profile ? :

    static AVStream *add_video_stream( Cffmpeg_dll * ptr, AVFormatContext *oc, enum   CodecID codec_id )
    {
    AVCodecContext *c;
    AVStream *st;  
    AVCodec* codec;

    // Get correct codec
    codec = avcodec_find_encoder(codec_id);
    if (!codec) {
       av_log(NULL, AV_LOG_ERROR, "%s","Video codec not found\n");
       exit(1);
    }

    // Create stream
    st = avformat_new_stream(oc, codec);
    if (!st) {
       av_log(NULL, AV_LOG_ERROR, "%s","Could not alloc stream\n");
       exit(1);
    }

    c = st->codec;

    /* Get default values */
    codec = avcodec_find_encoder(codec_id);
    if (!codec) {
       av_log(NULL, AV_LOG_ERROR, "%s","Video codec not found (default values)\n");
       exit(1);
    }
    avcodec_get_context_defaults3(c, codec);

    c->codec_id = codec_id;
    c->codec_type = AVMEDIA_TYPE_VIDEO;

    c->bit_rate = ptr->video_bit_rate;
    av_log(NULL, AV_LOG_ERROR, " Bit rate: %i", c->bit_rate);

       c->qmin = ptr->qmin;
       c->qmax = ptr->qmax;
       c->me_method = ptr->me_method;
       c->me_subpel_quality = ptr->me_subpel_quality;
       c->i_quant_factor = ptr->i_quant_factor;
       c->qcompress = ptr->qcompress;
       c->max_qdiff = ptr->max_qdiff;

       // We need to set the level and profile to get videos that play (hopefully) on all platforms
       c->level = 30;
       c->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;

    c->width = ptr->dstWidth;
    c->height = ptr->dstHeight;

    c->time_base.den = ptr->fps;
    c->time_base.num = 1;
    c->gop_size = ptr->fps;
    c->pix_fmt = STREAM_PIX_FMT;
    c->max_b_frames = 0;

    // some formats want stream headers to be separate
    if(oc->oformat->flags & AVFMT_GLOBALHEADER)
       c->flags |= CODEC_FLAG_GLOBAL_HEADER;

    return st;
    }

    Additional info :

    As a reference video, I use the gizmo.mp4 that Mozilla serves as an example that plays on every platform/browser. It definitely has the "Constrained Baseline" profile, and definitely works on all our testing smartphones. You can download it here. Our self-created video doesn't work on all platforms and I'm convinced this is because of the profile.

    I am also using qt-faststart.exe to move the headers to the start of the file after creating the mp4, as this cannot be done in a good way in C++ directly. Could that be the problem ?

    Obviously, I am doing something wrong, but I don't know what it could be. I'd be thankful for every hint ;)

  • The Guide to an Ethical Web : With Big Data Comes Big Responsibility

    13 mars, par Alex Carmona

    Roughly two-thirds of Earth’s 8 billion people use the internet for communication, education, entertainment, business and more. We are connected globally in ways previous generations could’ve never dreamed of. It’s been a wild ride, and we’re just starting.

    Many users have learned that experiences online can be a mix of good and bad. Sometimes, the bad can feel like it outweighs the good, particularly when large tech companies use our data shadily, cut corners on accessibility or act in any other way that devalues the human being behind the screen.

    As fellow internet citizens, what responsibility do we have to create a more ethical web for our customers ?

    In this article, we’ll look at ethical principles online and how to act (and not act) to build trust, reach customers regardless of ability, safeguard privacy and stay compliant while improving business outcomes.

    2025 Ethical Marketing Guide image with a mobile phone and orange button call to action.

    What is an “ethical web” ?

    When we talk about the ethical web, we’re talking about the use of the internet in an ethical way. Among other values, it involves transparency, consent and restraint. It applies the Golden Rule to the internet : Treat others (and their data and user experience) how you’d want yourself (and yours) to be treated. 

    With limited oversight, the internet has evolved in ways that often prioritise profit over user rights. While selling data or pushing cookies might seem logical in this context, they can undermine trust and reputation. And the tide is slowly but surely shifting as consumers and legislators push back.

    Consumers no longer want to buy from companies that will use their data in ways they don’t agree to. In 2022, 75% of UK and US consumers surveyed said they were uncomfortable purchasing from businesses with weak data ethics.

    Legislators worldwide have been taking part in this effort for nearly a decade, with laws like GDPR in the EU and LGPD in Brazil, as well as the various state laws in the US, like California’s CCPA and Virginia’s VCDPA

    Even tech giants are no longer above the law, like Meta, which was fined over a billion Euros for GDPR violations in 2023.

    An image defining the Golden Rule of the Internet. Treat others, their data and user experience like you would want yourself and yours to be treated.

    These changes may make the internet feel less business-friendly at first glance, but ethical choices ultimately build a stronger digital ecosystem for both companies and consumers. 

    Likewise, all internet users alike can make this happen by shunning short-term profit and convenience for healthier, long-term choices and behaviour.

    As we dig into what it takes to build an ethical web, remember that no company or individual is free from mistakes in these areas nor is it an overnight fix. Progress is made one click at a time.

    Ethical SEO : Optimising your content and your ethics

    Content creation and search engine optimisation (SEO) require so much work that it’s hard to fault creators for not always abiding by search engine guidelines and seeking shortcuts – especially when there’s a sea of LinkedIn posts about how copying/pasting ChatGPT responses helped someone rank #1 for several keywords in one week.

    However, users turn to Google and other search engines for something of substance that will guide or entertain them.

    Content meets customer needs and is more likely to lead to sales when it’s well-written, original and optimised just enough to make it easier to find on the first page of results. This doesn’t happen when content teams dilute quality and waste a reader or viewer’s time on posts that will only yield a higher bounce rate.

    Some SEO pros do find success by building backlinks through private blog networks or crafting a million unedited posts with generative AI, but it’s short-lived. Google and other search engines always catch up, and their content plummets or gets penalised and delisted with every new update.

    Content teams can still rank at the top while sticking to ethical SEO principles. Here’s a sample list of dos and don’ts to get started :

    • Do put content quality above all else. Make content that serves the audience, not just a brand or partner ad network.
    • Do apply the E-E-A-T framework. Search engines value content written by authors who bring expertise, experience, authority and trust (E-E-A-T).
    • Don’t keyword stuff. This might have worked in the early days of SEO, but it hurts readability and now harms article performance.
    • Do use alt text as intended. While it can still help SEO, alt text should prioritise accessibility for users with screen readers.
    • Don’t steal content. Whether it’s violating copyright, copying/pasting other people’s content or simply paraphrasing without citation, companies should never steal content.
    • Don’t steal ideas. It’s okay to join in on a current conversation or trends in an industry, but content creators should be sure they have something valuable to add.
    • Do use AI tools as partners, not creators. AI can be an incredible aid in crafting content, but it should never be posted without a human’s touch.

    When we follow ethical SEO guidelines and get more clients with our content, how do we best handle their data ?

    Ethical data governance : Important principles and how to avoid data misuse

    Data governance comprises every aspect of how a company manages data, including storage, security, privacy, lifecycle management, setting policies and maintaining compliance with laws like GDPR and HIPAA.

    Applying data ethics to governance is doing it all in a transparent, restrained way that acknowledges an individual’s right to ownership over their data. 

    For organisations, this translates to getting consent to collect data and clearly spelling out how it will be stored and used — and sticking to it.

    If a user’s birth date is needed for legal reasons, it cannot be sold to a third party or later used for something else without explicit permission. Reusing data in ways that stray from its original purpose is a form of commingling, one of the data misuses that is easy for even well-intentioned teams to do accidentally.

    Ethical data governance also includes the vigilant safeguarding of users’ data and minimising potential privacy issues.

    Failing to implement and adhere to strong security measures leads to situations like the National Public Data (NPD) breach, where cyber criminals expose the addresses, phone numbers and social security numbers of hundreds of millions of people. This was due in large part to a weakness in storing login credentials and a lack of password policy enforcement.

    No one at NPD wanted this to happen, but security likely took a backseat to other business concerns, leading to the company’s filing for bankruptcy.

    More importantly, as a data broker that aggregates information from other sources, the people affected likely had no clue this organisation had been buying and selling their data. The companies originally entrusted with their information helped provide the leaked data, showing a lack of care for privacy.

    Situations like this reinforce the need for strict data protection laws and for companies to refine their data governance approach. 

    Businesses can improve their data governance posturing with managers and other higher-ups setting the right tone at the top. If leadership takes a firm and disciplined approach by setting and adhering to strong policies, the rest of the team will follow and minimise the chances of data misuse and security incidents.

    One way to start is by using tools that make the principles of data ethics easier to follow.

    Ethical web analytics : Drawing insights while respecting privacy

    Web analytics tools are designed to gather data about users and what they do while visiting a site.
    The most popular tool worldwide is Google Analytics (GA). Its brand name and feature set carry a lot of weight, but many former users have switched to alternatives due to dissatisfaction with the changes made in GA4 and reservations about the way Google handles data.

    An image of a spiderweb with a user trapped in it. A spider looks hungrily at the user to symbolise the relationship between the unethical use of web analytics data and customer harm

    Google is another tech giant that has been slapped with massive GDPR fines for issues over its data processing practices. It has run so afoul of compliance that it was banned in France and Austria for a while. Additionally, in the US Department of Justice’s ongoing antitrust lawsuit against Google, the company’s data tracking has been targeted for both how it affects users and potential rivals.

    Unlike GA, ethical web analytics tools allow websites to get the data they need while respecting user privacy.

    Matomo offers privacy protections like :

    We’re also fully transparent about how we handle your data on the web and in the Matomo Cloud and in how we build Matomo as an open-source tool. Our openness allows you to be more open with your customers and how you ethically use their data.

    There are other GDPR-compliant tools on the market, but some of them, like Adobe Analytics, require more setup from users for compliance, don’t grant full control over data and don’t offer on-premise options or consent-free tracking.

    Beyond tracking, there are other ways to make a user’s experience more enjoyable and ethical.

    Ethical user experience : User-friendliness, not user-hostility

    When designing a website or application, creating a positive user experience (UX) always comes first. 

    The UI should be simple to navigate, data and privacy policy information should be easy to find and customers should feel welcomed. They must never be tricked into consenting or installing. 

    When businesses resort to user-hostile tactics, the UX becomes a battle between the user and them. What may seem like a clever tactic to increase sign-ups can alienate potential customers and ruin a brand’s image. 

    Here are some best practices for creating a more ethical UX :

    Avoid dark patterns

    Dark patterns are UI designs and strategies that mislead users into paying for, agreeing to or doing something they don’t actually want. These designs are unethical because they’re manipulative and remove transparency and consent from the interaction. 

    In some cases, they’re illegal and can bring lawsuits. 

    In 2023, Italy’s Data Protection Authority (DPA) fined a digital marketing company €300,000 for alleged GDPR violations. They employed dark patterns by asking customers to accept cookies again after rejecting them and placing the option to reject cookies outside the cookie banner. 

    Despite their legality and 56% of surveyed customers losing trust in platforms that employ dark patterns, a review by the Organisation for Economic Co-operation and Development (OECD) found that 76% of the websites examined contained at least one dark pattern.

    An image showing a person frustrated at a computer with an evil smile on it to symbolise poor user experience caused by unethical web design.

    If a company is worried that they may be relying on dark patterns, here are some examples of what to avoid :

    • Pre-ticking boxes to have users agree to third-party cookies, sign up for a newsletter, etc.
    • Complicated cookie banners without a one-click way to reject all unnecessary cookies
    • Hiding important text with text colour, under drop-down menus or requiring hovering over something with a mouse 
    • Confirm shaming” users with emotionally manipulative language to delay subscription cancellations or opt out of tracking 

    Improve trust centres

    Trust centres are the sections of a website that outline how a company approaches topics like data governance, user privacy and security. 

    They should be easy to find and understand. If a user has a question about a company’s data policy, it should be one click away with language that doesn’t require a law degree to comprehend.

    Additionally, trust centres must cover all relevant details, including where data is stored and who does the subprocessing. This is an area where even some of the best-intentioned companies may miss the mark, but it’s also an easy fix and a great place to start creating a more ethical web.

    Embrace inclusivity

    People want to feel welcomed to the party — and deserve to be — regardless of their race, ethnicity, religion, gender identity, orientation or ability. 

    Inclusivity is great for customers and companies alike. 

    A study by the Unstereotype Alliance found that progressive marketing drove up short- and long-term sales, customer loyalty and purchase consideration. A Kantar study reported that 75% of surveyed customers around the world consider a company’s diversity and inclusivity when making a purchasing decision.

    An easy place to start embracing inclusivity is with a website’s blog images. The people in photos and cartoons should reflect a variety of different backgrounds.

    Another area to improve inclusivity is by making your site or app more accessible.

    Accessibility ethics : An internet for everyone

    Accessibility is designing your product in a way that everyone can enjoy or take part in, regardless of ability. Digital accessibility is applying this design to the web and applications by making accommodations like adding descriptive alt text to images for users with visual impairments.

    Just because someone has a hearing, vision, speech, mobility, neurological or other impairment doesn’t mean they have any less of a right to shop online, read silly listicles or get into arguments with strangers in the comment section.

    Beyond being the right thing to do, the Fable team shows there’s a strong business case for accessibility. People with disabilities have money to spend, and the accommodations businesses make for them often benefit people without disabilities, too – as anyone who streams with subtitles can attest.

    Despite being a win-win for greater inclusivity and business, much of the web is still inaccessible. WebAIM, a leader in web accessibility, studied a million web pages and found an average of over 55 accessibility errors per page.

    We must all play a more active role in improving the experience of our users with disabilities, and we can start with accessibility auditing and testing.

    An accessibility audit is an evaluation of how usable a site is for people with disabilities. It may be done in-house by an expert on a company’s team or, for better results, a third-party consultant who can give a fully objective audit.

    Auditing might consist of running an automated tool or manually checking your site, PDFs, emails and other materials for compliance with the Web Content Accessibility Guidelines list.

    Accessibility testing is narrower than auditing. It checks how accessibility or its absence looks in action. It can be done after a site, app, email or product is released, but it ideally starts in the development process.

    Testing should be done manually and with automated tools. Manual checks put developers in the position of their users, allowing them to get a better idea of what users are dealing with firsthand. Automated tools can save time and money, but there should always be manual testing in the process.

    Auditing gives teams an idea of where to start with improving accessibility, and testing helps make sure accommodations work as intended.

    Conclusion

    At Matomo, we strive to make the ethical web a reality, starting with web analytics.

    For our users, it means full compliance with stringent policies like GDPR and providing 100% accurate data. For their customers, it’s collecting only the data required to do the job and enabling cookieless configurations to get rid of annoying banners. 

    For both parties, it’s knowing that respect for privacy is one of our foundational values, whether it’s the ability to look under Matomo’s hood and read our open-source code, the option to store data on-premise to minimise the chances of it falling into the wrong hands or one of the other ways that we protect privacy.

    If you weren’t 100% ethical before, it’s never too late to change. You can even bring your Google Analytics data with you.

    Join us in our mission to improve the web. We can’t do it alone ! 

    no credit card required